- Heat oil in a large heavy-bottomed pan over medium heat. 
- Add chopped onions and sauté until golden brown and caramelized, about 15-20 minutes. 
- Add all whole spices (cardamom, cassia bark, cloves, bay leaves) and cook for 1 minute until fragrant. 
- Stir in ginger/garlic paste and cook for 2 minutes until aromatic. 
- Add turmeric, paprika, and chilli powder, stirring constantly to prevent burning. 
- Add chopped tomatoes and tomato purée, cooking until tomatoes break down, about 5 minutes. 
- Pour in water and salt, bring to a boil, then reduce heat and simmer for 15 minutes. 
- Allow to cool slightly before storing or using as a base for curries.