1 tablespoon + 4 tablespoons unsalted butter, divided
1 small/medium sweet yellow onion, diced small
1 clove garlic, peeled and minced finely
1/4 cup all-purpose flour
2 cups low-sodium vegetable stock (chicken stock may be substituted)
2 cups fat-free half-and-half (regular half-and-half may be substituted; whole milk or 2% milk will work but soup won't be as creamy)
2 to 3 cups broccoli florets, diced into bite-size pieces + 1 cups stems, optional (I used 3 cups florets and 1 cup stems as not to waste them)
2 large carrots, trimmed, peeled, and sliced into very thin rounds, about 1/16th-inch
3/4 teaspoon salt, or to taste
3/4 teaspoon freshly ground black pepper, or to taste
1/2 teaspoon smoked paprika or regular paprika, optional and to taste
1/2 teaspoon dry mustard powder, optional and to taste
pinch cayenne pepper, optional and to taste (doesn't make soup spicy and serves to enhance flavor)
8 ounces grated high quality extra-sharp cheddar cheese, with a small amount reserved for garnishing bowls
- In a small saucepan, add 1 tablespoon butter, the diced onion, and sauté over medium heat until the onion is translucent and barely browned, about 4 minutes. Stir intermittently.
- Add the garlic and cook about 30 seconds, stirring constantly so it doesn't burn. Remove from heat and set pan aside.
- In a large heavy-bottom pot (I use this Le Creuset Signature Enameled Cast-Iron 6-3/4-Quart Oval French (Dutch) Oven) add 4 tablespoons butter, flour, and cook over medium heat for about 3 to 5 minutes, whisking constantly, until flour is thickened. You are making a roux and it's very important the mixture is thick or soup will never thicken properly later.
- Slowly add the vegetable stock, whisking constantly.
- Slowly add the 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 and carrots. After simmering 15 to 20 minutes, add the broccoli, carrots, and the onion and garlic you previously set aside.
- Add the salt, pepper, optional paprika, optional dry mustard powder, and optional cayenne. If you don't have these seasonings on hand, it's okay, but they do add subtle depth of flavor. 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. It's important to use a high-quality cheese (not the cheapest thing you can find) because the flavor of the soup depends on it. Do not use pre-grated cheese in ziptop bags because that cheese is resistant to melting and won't incorporate well. 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. I find the soup is less likely to 'break' or separate when reheated in the micro rather than on the stovetop, but do what you think is best. I don't recommend freezing the soup because I feel like the cheese and half-and-half will not do well upon thawing and soup could break, but I haven't actually tried freezing it.