Sauté the Aromatics: In a large Dutch oven, melt the butter over medium heat. Add the chopped onion and cook, stirring occasionally, until it becomes translucent and soft, about 4-5 minutes. This step develops a flavorful base for the soup.
Create the Roux: Sprinkle the flour evenly over the softened onions. Stir constantly for 1-2 minutes, allowing the flour to cook and combine with the butter and onions. This mixture will thicken the soup and prevent a raw flour taste.
Add the Liquids: Gradually whisk in the half-and-half and chicken broth, stirring continuously to create a smooth, lump-free mixture. Increase the heat to bring the soup to a gentle boil, then reduce it to medium.
Cook the Vegetables: Add the broccoli florets and julienned carrots to the pot. Simmer the soup on medium-low heat for 20-25 minutes, or until the vegetables are tender but not mushy, stirring occasionally to prevent sticking.
Season and Blend (Optional): Season the soup with salt and pepper according to your taste. For a creamier texture, transfer about one cup of the soup to a blender, puree it until smooth, and stir it back into the pot. This step is optional and can be skipped if you prefer a chunkier soup.
Incorporate the Cheese and Final Touches: Reduce the heat to low. Gradually add the grated cheddar cheese, stirring constantly until fully melted and smooth. Be careful to keep the heat low to avoid the cheese becoming grainy. Stir in the nutmeg if using, which adds a subtle warmth to the flavor.