Preheat the oven: Set to 400°F (200°C).
Grease a 2-quart baking dish.
Cook the cauliflower: Steam or boil florets until very tender, 8–10 minutes. Drain well and let sit in the colander a minute to release excess moisture.
Make the mash: Add cauliflower to a food processor or bowl. Blend or mash with butter, cream cheese, Parmesan, garlic powder, and 2 tablespoons heavy cream.
Season with salt and pepper. Add more cream only if needed for a smooth, thick consistency.
Sauté aromatics: In a large skillet over medium heat, warm oil (if using). Add onion and cook 3–4 minutes until softened.
Stir in garlic and cook 30 seconds.
Brown the meat: Add ground lamb or beef. Break it up and cook until browned, about 5–7 minutes. Drain excess fat if necessary.
Add veggies: Stir in mushrooms, carrots (if using), and peas or green beans.
Cook 3–4 minutes until slightly tender.
Season and simmer: Mix in tomato paste, Worcestershire, thyme, rosemary, and broth. Simmer 3–5 minutes until slightly thickened. Season with salt and pepper to taste.
The mixture should be saucy, not soupy.
Assemble: Spread the meat filling evenly in the baking dish. Spoon the cauliflower mash on top and smooth it out, sealing to the edges. Create swirls with a spoon for better browning.
Sprinkle cheddar on top if using.
Bake: Place on the center rack and bake 18–22 minutes, until the top is lightly golden and the edges bubble.
Rest and serve: Let it rest 5–10 minutes to set. Garnish with parsley and serve warm.