Heat the oil in a heavy bottomed pan. Gently fry the bay leaf, cinnamon and cardamom for around a minute.
Add the sliced onions and salt, cook on a low heat for around 30 minutes, stirring often, until beginning to turn deep brown.
Add the cashew nuts and fry for a couple minutes more.
Add the garlic, ginger and green chilli. Fry for a minute.
Add the ground spices and cook, stirring for 30 – 40 seconds
Stir in the tomato puree and cook gently for 30 seconds, stirring.
Mix in the yoghurt followed by the water
Stir the mixture until it comes to a simmer.
Cook the gravy for 30 minutes.
Remove the cardamom, bay leaf and cinnamon. Blend the gravy with a hand blender or blender (leave to cool slightly if doing the latter otherwise the steam will build up and blow the lid off!)
Once smooth the gravy is ready to use.