Heat butter and olive oil in pot or dutch oven over medium heat. Add chopped onion, smashed garlic and cook for 2 minutes.
Add sliced carrots and cook for 2 minutes.
Now, add diced ripe tomatoes, salt, freshly crushed pepper and mix. Add can of whole peeled tomatoes with their juices and mix.
Add vegetable stock, red pepper flakes, fresh basil, stir. Add bay leaves, cover and simmer for 10 minutes on medium-low heat until the tomatoes softens. Stir occasionally.
Discard bay leaves. Allow it to rest for 3-4 minutes and then transfer the tomato mixture to a blender jar and blend until smooth puree. Note: you can use immersion blender here if your prefer chunky soup.
Now, pour the soup puree in a mesh strainer placed over the same pot to get lovely smooth consistency. Press the puree using spoon to strain the soup well so that only the seeds remain in the strainer.
Check for salt and add more if needed. Add sugar, mix and simmer on low heat for few minutes such that soup becomes hot and not boiling.
Turn off the heat, pour the ladleful soup in serving bowls, garnish with cream, fresh basil (or parsley) and serve hot with croutons, grilled cheese or crusty toasted bread on side.