Heat your olive oil and butter together in a large pot over medium heat until the butter melts completely. Add your diced onion and sliced carrots, then cook for about 5 minutes until they start to soften and smell amazing. You'll notice the onions becoming translucent—that's when you know they're ready for the next step.
Stir in your minced garlic and cook for exactly 1 minute, making sure it doesn't burn. The kitchen will smell absolutely incredible at this point, and that's how you know everything's working right. Don't walk away during this minute or you'll end up with bitter garlic.
Add your cauliflower florets and vegetable broth to the pot, then bring everything to a boil. Once it's boiling, reduce the heat to medium-low and let it simmer for about 20 minutes. The cauliflower needs to get really tender so it blends smoothly later.
Toss in the bay leaf, dried thyme, black pepper, and salt, then stir everything together. Let that simmer for another 5 minutes so all those flavors get to know each other. This is when the magic really starts happening.
Remove from heat and carefully stir in your whole milk and heavy cream until combined. This creates that silky smooth texture everyone goes crazy for—don't skip this step even if you're tempted. Let it cool for about 3 minutes before blending so you don't get steam burns.
Use an immersion blender to blend the cauliflower soup recipe until it's completely smooth, working in batches if needed. If you don't have an immersion blender, carefully transfer it to a regular blender in smaller portions and blend until silky. I personally prefer the immersion blender because there's less cleanup and fewer dishes at the end of dinner.
Taste and adjust your seasonings—sometimes you'll want a pinch more salt or a tiny bit extra nutmeg. Pour into bowls, add your favorite toppings, and serve immediately while it's hot. This cauliflower soup recipe deserves to be enjoyed right away.