Heat oil in a deep pot and saute onions on a medium heat for 10 minutes. Add the ginger and garlic and continue to saute on a low heat until deep golden (caramelized) but not burnt.
Cool this and add to a blender along with tomatoes, soaked cashews and curd. Make a smooth paste.
Add butter to the same pot and heat it on a low heat. Add the whole spices – bay leaf, mace, cinnamon, cloves, green and black cardamoms and green chilies.
Let them sizzle in the butter for a minute and stir in the red chili powder and garam masala, followed by the onion tomato puree.
Be careful as this can splutter. Quickly cover and cook for 8 minutes on a low to medium heat (leaving the spoon in & stir after every 3 minutes without uncovering).
Turn down the heat and stir in the hot water. Cover and simmer until the gravy turns thick and creamy.
Meanwhile, trim the edges of the paneer blocks to cut down about 35 to 40 grams ( ¼ cup crumbled). Cube the rest of the paneer to 8 portions.
Make a slit on the paneer portions, keeping one side intact (refer the pictures in the post).
Mix together the crumbled paneer with salt, coriander chutney, chopped cashews, red chili powder, amchur, garam masala and dried ginger. Taste test and add more spice to your taste. The mixture has to be moist.
Carefully fill the paneer sandwiches with this mixture, making sure to keep one side intact. (do not break). Keep them aside.
Check the gravy, it should be thick and creamy. Add nutmeg, kasuri methi, black pepper, sugar and salt. Taste test and adjust all the spices if you want.
Sprinkle saffron or rose water or kewda. Turn off and keep covered for at least 5 to 10 minutes.
Heat a pan with ghee or oil and place the paneer sandwiches. Fry them on a medium to medium-high heat until golden, using a wooden tong or 2 spatulas, hold the paneer sandwiches and turn them to the other side.
Fry them until crisp and golden.
The gravy becomes thick after cooling down a bit. Serve the gravy with Basmati rice, naan or roti. Place the sandwiches in the gravy and garnish with coriander leaves & cream.