Wash and chop broccoli into bite-sized florets. Add to the base of a 6-quart slow cooker.
In a medium skillet over medium heat, melt 1 tablespoon of the butter. Add onion and sauté for 3–4 minutes until softened. Add garlic and the remaining 3 tablespoons butter; cook for 30 seconds.
Sprinkle in flour and stir constantly for 1–2 minutes to form a pale roux. Slowly whisk in 1 cup of broth until smooth and slightly thickened. Remove from heat.
Transfer the onion-flour mixture to the slow cooker. Add remaining 2 cups broth, shredded carrot, salt, and pepper. Stir to combine.
Cover and cook on low for 4–6 hours or high for 3–4 hours, until broccoli is tender.
Reduce heat to low if cooking on high. Stir in heavy cream and nutmeg. Gradually add cheddar cheese, stirring until completely melted and smooth. Do not boil after adding cheese.
Optional: Use an immersion blender to partially puree the soup directly in the slow cooker for a creamier texture, leaving some broccoli chunks for contrast.
Notes
Use freshly shredded cheddar for the best melt. Pre-shredded cheese can result in a grainy texture.
Don’t overheat after adding cream and cheese — keep the soup below a simmer to prevent curdling.
Frozen broccoli? Add during the last hour of cooking so it doesn’t overcook.
Add ½ cup shredded gouda or gruyère for extra cheesiness and depth.
Finish with a squeeze of lemon or a pinch of mustard powder for brightness and complexity.
Want it spicy? Stir in ¼ teaspoon cayenne with the broth.
For a thinner soup, swap milk for cream and skip the step of blending some of the soup at the end.