Melt butter in a large pot over medium heat. Add the chopped onion and sauté for 3-4 minutes until softened and translucent.
Sprinkle the flour over the onions and stir constantly for 1-2 minutes to create a roux. This will thicken your soup perfectly!
Slowly whisk in the half-and-half and chicken broth, stirring constantly to prevent lumps. Bring to a gentle simmer.
Add the broccoli florets and shredded carrot. Simmer for 15-20 minutes until the broccoli is tender but still has a little bite.
Reduce heat to low and stir in the shredded cheddar cheese, one cup at a time, stirring until completely melted and smooth.
Add garlic powder, salt, pepper, and nutmeg. Taste and adjust seasonings as needed.
For an extra-smooth texture like Panera's, use an immersion blender to partially blend the soup, leaving some broccoli chunks for texture. Serve hot with crusty bread!