In a small sauce pan, melt 2 Tbsp of butter over medium heat. Add 1diced yellow onion. Sauté until onion is translucent and barely browned. About 4 minutes. Stir intermittently.
Add 2 cloves of minced garlic and cook for 30 seconds, stirring constantly. Remove from heat and set aside.
In a large pot melt 8 tablespoons of butter over medium heat. Add 1/2 cup of flour and heat for 3-5 minutes, whisking constantly until flour is thickened. This is a roux, cook until thick or your soup will not thicken later!
Slowly add the 4 cups of chicken broth, whisking constantly.
Slowly add 4 cups of half-and-half, whisking constantly.
Allow mixture to simmer over low heat for about 15 to 20 minutes, or until it has reduced and thickened some. Whisk intermittently to re-incorporate the ‘skin’ that inevitably forms, this is normal.
While mixture is simmering, chop the broccoli. After simmering 15 to 20 minutes, add the broccoli, carrots, potatoes, and the onion and garlic you previously set aside.
Add the salt, pepper, paprika, dry mustard powder, and cayenne. Stir to combine.
Allow soup to simmer over low heat for about 20 to 25 minutes, or until it has reduced and thickened some. Whisk intermittently to re-incorporate the ‘skin’ that inevitably forms, this is normal.
While soup simmers, grate the cheese. After simmering about 20 to 25 minutes, add most of the cheese, reserving a small amount for garnishing bowls. Stir in the cheese until melted and incorporated fully, less than 1 minute.
Transfer soup to bowls, garnish with reserved cheese, and serve immediately. Soup will keep airtight for 5 to 7 days in the fridge. Reheat gently in the microwave.