Crisp the bacon. Add chopped bacon to a large pot or Dutch oven over medium heat. Cook until the pieces are browned and crisp, 6–8 minutes.
Transfer bacon to a paper towel–lined plate. Leave about 1–2 tablespoons of bacon fat in the pot.
Sauté the aromatics. Add butter to the pot with the bacon fat. Stir in the onion and cook until soft and translucent, about 4–5 minutes.
Add garlic and cook for 30 seconds until fragrant.
Cook the cauliflower. Add the cauliflower florets, smoked paprika, and a pinch of salt and pepper. Stir to coat, then pour in the chicken broth. Bring to a boil, reduce to a simmer, and cook until the cauliflower is very tender, 12–15 minutes.
Blend until smooth. Use an immersion blender to puree the soup directly in the pot until silky.
For extra-smooth texture, blend in batches in a countertop blender, then return to the pot. If it’s too thick, add a splash of broth.
Add cream and cheese. Stir in the heavy cream and Dijon mustard. Reduce the heat to low (avoid boiling).
Gradually add the cheddar in small handfuls, stirring constantly until melted and smooth.
Season and finish. Taste and adjust with salt, pepper, and red pepper flakes if using. Stir in half the crisp bacon. Let the soup sit on low heat for 2–3 minutes to meld flavors.
Serve. Ladle into bowls and top with remaining bacon, extra cheddar, and chopped chives or green onions.
Serve hot.