In a large stock pot over medium heat, melt the butter. Add the onion and garlic and sauté until soft and translucent, about 5 minutes.
Sprinkle in the flour and stir constantly for 1–2 minutes to cook out the raw flour taste.
Gradually whisk in the half-and-half and chicken stock, about 1/2 cup at a time, whisking well after each addition to create a smooth base.
Add the broccoli, carrots, and nutmeg. Stir to combine.
Bring to a boil, then immediately reduce the heat to medium-low. Cover and simmer, stirring occasionally, for 15 minutes or until the broccoli and carrots are fork-tender.
Remove from heat and stir in the shredded cheddar cheese a handful at a time, letting each addition melt smoothly before adding more. Do not boil after adding the cheese to prevent graininess.
Taste and adjust the seasoning with salt and pepper. For a thicker consistency, continue simmering uncovered for several minutes. For a thinner soup, add a splash of extra stock.
Use an immersion blender to purée the soup to your preferred texture, or blend just some of the soup for a mixed chunky-smooth consistency.
Serve immediately, garnished with extra cheese if desired.