Heat the oil in a large, deep frying pan and add the onions and garlic. Cook over high heat 3-4 minutes.
Add the chopped tomatoes with the vegetable stock, lentils, tomato paste, worcestershire sauce and bring to a boil.
Cover with a lid and simmer over low heat for 1-1.25hrs until the lentils are tender. *ONLY when the lentils are tender, season with salt and pepper.*
Add the spinach and mushrooms and stir over the heat until the spinach has wilted and the mushrooms are cooked. Pour into the ovenproof dish and set aside to cool.
Make the cauliflower mash— remove the core/stem and break the cauliflower into florets with your hands.
Melt 2 tbsp vegan butter in a large pan and pour in the florets. Let the florets cook until they start to take on some color.
Bring a large pot of salted water to a boil and add the florets. Cook for 10 minutes. Do this in batches if your pot is not large enough to do them all at once.
Drain completely and pat dry with a paper towel.
Place in a food processor or high powered blender and pulse til smooth. Be sure that you allow the food processor or blender to vent, by removing the center of the lid, so that the steam isn't trapped. If the steam stays trapped, your mash will be watery. Season with salt and pepper.
Meanwhile preheat the oven to 200C / 395F.
Spoon the mashed cauliflower on top of the cooled lentil mixture and run a fork down so you have some grooves. Brush with the final tbsp melted vegan butter so that you get a little color on the ridges in the oven.
Bake for 30-35 minutes until bubbling and getting some color on the top.