Melt the butter in a large soup pot over medium heat. Add the diced onion and cook for about 4–5 minutes, until softened and translucent. Stir in the garlic and cook for another 30 seconds, just until fragrant—don’t let it burn!
Sprinkle the flour over the butter-onion mixture and stir continuously for 1–2 minutes. This forms a roux, which will help thicken your soup. Cook just until the raw flour smell disappears and the mixture turns slightly golden.
Slowly whisk in the vegetable broth, breaking up any lumps as you go. Then add the milk and cream. Stir until well combined. Bring the mixture to a gentle simmer—do not boil or the milk may curdle.
Add the chopped broccoli and shredded carrot to the pot. Season with salt, pepper, and nutmeg if using. Simmer uncovered for 10–15 minutes, until the broccoli is tender but not mushy.
Using an immersion blender, blend the soup until you reach your desired texture. Some prefer it completely smooth, while others like to leave a few broccoli chunks for texture. If using a standard blender, blend in batches and be careful with the hot liquid.
Lower the heat and slowly stir in the shredded cheddar cheese, one handful at a time. Stir constantly until the cheese is melted and the soup is velvety smooth. Taste and adjust seasoning as needed.