Heat the olive oil in a large saucepan over medium heat. Add the diced onion and minced garlic, cooking until they become soft and translucent.
Stir in the ground beef (or lamb) and cook, breaking it up with a spoon, until it's fully browned and cooked through.
Add the diced zucchini and crushed tomatoes to the pan, mixing everything together well.
Reduce the heat to a gentle simmer and let the mixture cook uncovered for about 10 minutes, allowing the flavors to meld beautifully.
Bring a large pot of water to a boil. Add the cauliflower florets and boil for 8-10 minutes until they are very tender.
Carefully drain the cauliflower, ensuring all steam and excess water escape. This step is key for a smooth, creamy mash!
Transfer the dry cauliflower to a food processor. Add the butter, heavy cream, shredded cheese, salt, and pepper. Process until the mixture is completely smooth and creamy.
Spoon the cooked ground beef mixture evenly into the bottom of a large casserole dish.
Gently spread the mashed cauliflower topping over the meat layer, creating an even top.
Place the casserole dish in a preheated oven at 350°F (175°C) for 20-25 minutes, or until the filling is bubbly and the cauliflower topping is lightly golden brown.