Drizzle olive oil in the bottom of a large stock pot or dutch oven. Place over medium heat.
Add the carrots to the olive oil and let cook until they begin to soften, 5-7 minutes. Add in the garlic, stir, and let cook for about 1 minute. Do not let the garlic burn.
Add in the tomato paste and flour and whisk until combined. Let cook for another 1-2 minutes, or until the mixture begins to brown slightly.
Pour the tomatoes into a separate bowl and crush the tomatoes using a potato masher or your hands. It does not have the be perfect, but ensure all the chunks are broken up.
Add the tomatoes to the pot and stir.
Pour the chicken broth into the pot, whisking continuously to prevent clumping.
Add in the bay leaves, and salt and pepper to taste. Reduce the heat to medium low and let simmer for about 30 minutes. The soup will reduce slightly and thicken.
Using an immersion blender, puree the soup until uniform and all the chunks are gone. Alternatively, you can add the soup to a blender and blend in batches and return to the pot.
Serve warm with toppings of choice (cream, olive oil, herbs, etc.).