Take the nuts and seeds in a bowl and rinse them a couple of times with water. Drain all the water and set aside.
Cook onions, cashews, almonds, magaz or melon seeds, ginger and garlic in 1.5 cups water for 8 to 10 minutes until the onions soften.
Strain the stock and set aside. Let the onions cool at room temperature.
Make a fine paste of the cooked onions, ginger, garlic along with the dry fruits adding 2 to 4 tablespoons of the strained water.
Whisk fresh curd (yogurt) till smooth and set aside.
Sautéing onion paste
Heat ghee in a frying pan on medium-low to medium heat.
Fry all the whole spices (listed in the above ingredients) until they release their aroma in the ghee. Be very attentive here, as spices are delicate and can burn quickly if you aren’t paying attention.
Add the ground onion paste and mix very well. On a low heat sauté stirring non-stop for 7 to 8 minutes or until the fat starts to leave the sides of the paste.
Add red chilli powder or cayenne pepper, garam masala powder and coriander powder. Mix well.
Adding curd and simmering further
Reduce heat to a low or switch off the heat. Add the whisked yogurt, 1 to 1.5 cups of the strained stock and additional water, sugar and salt as required.
Mix very well and simmer gravy for 10 to 12 minutes until it thickens.
Add the cardamom powder and crushed saffron.
Stir and add the cubed paneer and cream.
Mix gently and switch off heat.
Add the kewra water and stir. You can even add rose water.
Garnish Shahi Paneer with some coriander leaves or mint leaves or a few saffron strands. Serve the Mughlai Shahi Paneer with cumin rice or roti, naan or paratha.
Making a richer version: In this shahi paneer recipe, I have not used butter and added less cream. Feel free to add more cream or use butter if you prefer.
Tomatoes: I have not added tomatoes as I have used yogurt (curd). But you can substitute yogurt with tomato puree in the same proportions as mentioned in the recipe. If adding tomatoes, then do add 2 to 3 tablespoons cream to balance the tang from tomatoes.
Vegan options: Use tofu and cashew yogurt. I won't suggest using soy or peanut yogurt. If using cashew yogurt then you don't need to add cashews while making the paste. Use a neutral tasting oil in place of ghee.
Freshness: Since a major part of the gravy is made from nuts and yogurt, do make sure that these ingredients are fresh. The nuts and seeds should not be rancid and the curd (yogurt) must not be sour.
Consistency: You can make a thicker consistency or a medium consistency of the gravy by adding less or more water.
Fats: For the fats, you can use any neutral tasting oil or butter or ghee. Though butter or ghee will make the gravy richer.