Sauté the aromatics (10 minutes):
In a large pot, heat olive oil and butter over medium heat. Add onion, carrots, and celery. Cook until softened and fragrant, about 8 minutes. Stir in garlic and cook 1 more minute.
Build the tomato base (5 minutes):
Add tomato paste, stir well, and let it cook for 2 minutes to deepen flavor. Then add canned tomatoes with their juices, broth, dried basil, and the bay leaf.
Simmer the soup (20 minutes):
Bring to a boil, then reduce to medium-low and simmer uncovered until veggies are tender and flavors meld together. The smell will fill your kitchen — tangy, savory, and slightly sweet.
Blend until smooth (5 minutes):
Remove bay leaf. Use an immersion blender directly in the pot until silky smooth. (If you don’t have one, carefully ladle into a countertop blender in batches.)
Finish with cream (3 minutes):
Stir in the heavy cream and season generously with salt and pepper. Taste and adjust.
Serve hot (2 minutes):
Ladle into bowls, garnish with fresh basil and parmesan, and serve with crusty bread or grilled cheese.