Prep the oven and pan. Preheat the oven to 400°F (200°C). Lightly grease a 9x13-inch baking dish with cooking spray or olive oil.
Cook the bacon. Fry bacon in a skillet over medium heat until crisp. Drain on paper towels and crumble.
If using pre-cooked bacon, warm it briefly to release flavor.
Steam or roast the cauliflower. Cut cauliflower into bite-size florets. For a quicker option, steam for 6–8 minutes until just fork-tender, then drain well. For deeper flavor, toss florets with a little oil, salt, and pepper, and roast on a sheet pan for 18–20 minutes until lightly golden.
Dry the cauliflower. Pat steamed florets dry with paper towels, or let roasted florets cool slightly.
Removing excess moisture helps the casserole stay creamy, not watery.
Make the cheesy sauce. In a large bowl, combine softened cream cheese, sour cream, heavy cream, minced garlic, 1½ cups cheddar, and 1 cup mozzarella or Jack (if using). Add smoked paprika, salt, and pepper. Stir until smooth.
If the cream cheese is too stiff, microwave the bowl for 15–20 seconds and stir again.
Fold in the cauliflower. Add the cauliflower to the bowl and gently toss to coat every piece. Stir in most of the crumbled bacon and most of the green onions, reserving a little of each for the top.
Assemble. Transfer the mixture to the prepared baking dish. Sprinkle remaining cheddar on top, then finish with the reserved bacon and green onions.
Dot with butter for extra richness, if desired.
Bake. Bake for 18–22 minutes, until the casserole is bubbling at the edges and the top is melted and lightly golden.
Rest and garnish. Let it rest 5–10 minutes to set. Garnish with extra green onions, chives, or parsley before serving or portioning.
Portion for meal prep. Divide into 4–6 meal prep containers. Add a simple side like a green salad or sautéed greens if you want more volume without more carbs.