Mix all ingredients for the koftas together until fully combined.
If mixture is too crumbly to form into balls, add water 1 tsp at a time until you’re able to form the dough into balls.
If the dough is too wet, add all purpose flour 1 tbsp at a time until you’re able to handle the dough without it sticking to your hands too much.
Be careful while adding the water or all purpose flour.
Adding too much of the former will make the koftas oily, while adding too much of the latter will make the koftas taste dry and doughy.
Form the dough into 2 inch koftas with oiled hands (I was able to form 12 koftas).
Cover and refrigerate the koftas.
Soak the cashews, almonds and dried Kashmiri chillies in warm water for about 15 minutes.
In a kadai, heat oil until hot. Add chopped onions, ginger garlic paste and chopped green chillies and saute until fragrant, and the onions are soft.
Add chopped tomatoes. Cover and cook for 5 to 8 minutes until tomatoes are mushy. Turn off the heat and let cool.
Blend the onion-tomato mixture, cashews, almonds and red chillies (without the water) into a fine puree.
You can add a few teaspoons of water to help blend it.
Pass the puree through a sieve.
If you are not particular about having a smooth curry, you can skip this step, but I recommend sieving the mixture.
In the same kadai used for sauteing the onions and tomatoes, heat butter and oil.
Add cinnamon, cardamom, cumin seeds and cloves.
Fry on medium low heat until aromatic.
Add the puree and cook for about 2 to 3 minutes.
Add chilli powder, coriander powder, cumin powder, salt and sugar. Mix well and cook for 3 to 4 minutes.
Add cream, garam masala and kasuri methi. Simmer for a few minutes before turning off the heat.
Heat a few inches of oil in a large kadai on medium. Fry the prepared koftas until they are a dark golden brown.
Arrange the koftas in a serving bowl and pour the curry over it.
Garnish with more cream and mint leaves, and serve immediately.