Preheat the oven to 350°F (175°C).
Cut the cauliflower into florets. Dice the onions and carrots. Halve the tomatoes.
Bring a saucepan of water to a boil. Add the cauliflower, garlic, a generous splash of olive oil, and salt and pepper. Cook until the cauliflower is tender.
Heat a little olive oil in a skillet on medium-high heat. Add the onions and carrots and cook until tender.
Add the ground beef and cook, stirring frequently and breaking up the meat, until it is browned. Season with a little salt and pepper.
Add the tomatoes. Cook for about three minutes, then transfer to a baking dish.
When the cauliflower is tender, drain in a colander and return the pot to medium heat. Add a nice splash of olive oil and briefly sautée the cauliflower florets.
Mash the cauliflower, preferably with a potato masher so as to keep a little texture. Add olive oil and mix. The more olive oil you add to the mash, the smoother it will be (see tip). Spoon the cauliflower over the vegetable mixture.
Bake for 15 to 20 minutes until the cauliflower topping is browned, then serve.