Heat the olive oil in a large pot or Dutch oven over medium heat. Add the onion and carrot and cook until softened, about 5-7 minutes.
Add the garlic and cook for another minute until fragrant.
Pour in the white wine and bring to a simmer, scraping up any browned bits from the bottom of the pot.
Add the chopped tomatoes, tomato puree, saffron, bay leaf, and cayenne pepper. Bring to a simmer and cook for 15-20 minutes, allowing the flavors to meld.
Season with salt and pepper to taste.
Gently add the fish and shellfish to the pot. Cover and cook until the fish is cooked through and the shellfish have opened, about 5-7 minutes.
Discard any shellfish that do not open.
Serve immediately, garnished with fresh parsley and a squeeze of lemon juice.