Soaking time: 10 minutes
For the syrup, place the sugar and water in a pan high heat and bring to the boil, then reduce to a simmer and cook for 10 minutes until it reduces to a sticky consistency.
Take the pan off the heat, add the cardamom, saffron and rosewater, set aside and keep warm.
For the paneer, place the milk in a pan high heat and bring just to the boil, then remove from the heat and stir in the lemon juice. Set aside until the curds separate from the whey. Drain the mixture in a sieve lined with muslin or a clean cloth, discarding they. Rinse the paneer the cold water for 2 minutes, then drain well.
For the gulab jamun, combine the milk powder, paneer, flour and soda in a large bowl and knead with your palm to ensure there are no lumps - the mixture should be a smooth dough-like consistency. Cover rest for 5-10 minutes.
Combine the pistachio, almond, cardamom and saffron together and set aside.
Divide the dough into 8-10 walnut-sized balls.
Lightly grease your palms with some ghee, roll a ball so it’s smooth, flatten into a disc in your palm, then press a small dent in the centre of the disc.
Place a tiny pinch of the pistachio mixture in the dent, crimp the edges together to enclose the filling and gently roll into a smooth ball. Ensure there are no cracks on the surface. (Make sure the doughnuts are perfectly round so the syrup soaks all the way to the centre.) Repeat with the remaining balls and filling.
Heat the oil in a round-bottomed saucepan until hot. Deep-fry the balls, in batches, making sure not to touch the balls – just swirl the oil around them – until a deep orange colour. Remove with a slotted spoon and drain on paper towel.
Soak the gulab jamun in the warm syrup (it’s important that the syrup is warm, not hot and not cold) for at least 10 minutes or more.
Remove from the syrup with a slotted spoon and place in serving bowls. Garnish with a slice of pistachio or almond.