Prep and measure ingredients before starting the cooking.
In a medium or large pot, melt the butter over medium heat. Add the onion and saute, stirring regularly, until translucent, about 4 minutes. Add garlic and stir constantly for about 30 seconds.
Add the flour, whisking constantly, about 3-5 minutes. Gradually whisk in the broth and milk.
Stir in the broccoli and carrot (if using) and bring the mixture to a simmer. Let simmer until broccoli is softened, about 15 minutes.
Make sure the cream cheese is softened enough to easily stir. Add the salt, pepper, dry mustard, paprika, cayenne, and cream cheese to the soup, stirring to combine. Stir in the shredded cheese until melted and incorporated. Remove from heat and serve.
Notes
To make this soup low carb and gluten free, use heavy cream in place of the milk, or half heavy cream and half almond milk (or something similar). Omit the flour and carrot. Use a low carb, gluten free thickener, if desired. (See blog post for ideas.)