Preheat the oven to 200°C/400°F/gas mark 6. Line a roasting tin with baking parchment.
To make the korma sauce, heat the oil in a large pan over a low heat . Add the onion and cook gently, stirring often, for 10-15 minutes until soft and translucent.
Add the ginger, garlic, tomato puree, garam masala, cumin, coriander, turmeric, cinnamon, chilli powder, cardamom and cloves. Cook gently, stirring often, for about 3 to 5 minutes.
Add the coconut milk, stock and cashews. Bring up to a gentle simmer and cook for 15 minutes, stirring every now and again to prevent it from catching on the bottom.
While the sauce is simmering, toss the tofu with ½ tablespoon of oil and spread it out on the prepared baking sheet. Bake for 20-30 minutes, turning the pieces halfway through, until it is golden brown and crisp. (You can fry the tofu in a pan if you prefer).
Heat the other ½ tablespoon of oil in a frying pan over a medium heat and add the halved button mushrooms. Cook, stirring often, for 5-10 minutes until lightly browned and the excess water has evaporated.
When the sauce is done simmering, transfer it to a blender and blend until very smooth. You can add a splash more stock if it is too thick.
Pour the sauce back into the pan and stir in the lemon juice and plenty of salt and pepper to taste. Stir in the cooked tofu and mushrooms, simmer for a couple of minutes then serve with rice and naan bread.
Leftovers will keep in a covered container in the fridge for a couple of days.