In a large pot, heat the olive oil over medium heat, then add the onion and garlic and cook for about 3-4 minutes until soft and translucent.
Sprinkle in the flour and butter and stir constantly for 1-2 minutes. This will thicken the soup and give it that creamy texture. Make sure the flour is fully absorbed.
Slowly whisk in the chicken stock, making sure to scrape up any bits from the bottom of the pot for extra flavor.
Add the carrots and broccoli to the soup and bring it to a simmer. Let it cook for about 5-7 minutes, until the carrots are tender but not mushy and the broccoli is tender but still vibrant green.
Lower the heat and stir in the heavy cream and milk. Let the soup heat through but don’t let it boil.
Add in the spices and stir.
Remove the soup from the heat. Gradually stir in the cheddar and mozzarella cheese, a handful at a time, making sure it melts completely before adding more.
Top with some extra cheese and serve with toasted bread!