Put the paneer in a bowl and mash with a potato masher or a fork, then add the flour, and mix together. Divide into 8 equal portions and shape into balls or ovals.
For the filling, put the saffron in a small bowl with the milk and soak until required.
Put all the ingredients for the filling, including the saffron and milk, in a large bowl and mix together. Divide into 8 equal portions.
Flatten the paneer balls or ovals between your hands, place a portion of the filling in the middle and reshape into balls or ovals.
Heat enough oil for deep-frying in a kadhai or deep, heavy-based pan to 180'C / 350’F, or until a cube of bread browns in 30 seconds, then reduce the heat.
Working in batches, if necessary, carefully lower the stuffed kofta into the hot oil and deep-fry for 2-3 minutes, or until golden brown. Remove with a slotted spoon and drain on kitchen paper (paper towels).
To make the sauce, mix the ground coriander, chilli powder, and 3 tablespoons of water together in a small bowl.
Heat the ghee in a heavy-based pan over medium heat, add the whole spices and bay leaves and, stir-fry for about 1 minute, or until the cardamom pods begin to change color.
Add the ginger paste and stir-fry for 1 minute, then add the ground coriander and chilli powder mixture and stir-fry for about 2-3 minutes, or until all the water has evaporated
Add the cashew nut paste and stir-fry for a further 2 minutes, or until the oil separates out. Add the tomatoes, bring to a boil, then reduce the heat to low and simmer for 5-7 minutes.
Add the stock, bring to a boil, then reduce the heat to low and simmer for a further 10 minutes. Place the fried kofta in the sauce and simmer for 3-4 minutes. Mix all the ground spices together, then sprinkle them over.