Melt butter in a large pot over medium; sauté onion 3-4 minutes until softened and translucent.
Sprinkle flour over onions; stir constantly 1-2 minutes to form a thickening roux.
Slowly whisk in half-and-half and broth, stirring constantly to prevent lumps; simmer gently.
Add broccoli and carrot; simmer 15-20 minutes until broccoli is tender with a little bite.
Reduce heat to low; stir in cheddar one cup at a time until completely melted and smooth.
Add garlic powder, salt, pepper, and nutmeg; adjust seasoning to taste.
For a smoother texture, partially blend with an immersion blender, leaving broccoli chunks. Serve hot with crusty bread.