Place all the ingredients for marination, except oil, in a bowl and mix well.
Add the mushrooms and coat the mushrooms with yoghurt marinade. Set aside for 30 minutes.
Soak cashews and tomatoes in boiling water for 30 minutes or until tomatoes are blanched and cashews are soft.
Blend the cashews and tomatoes (adding water if required) to make smooth paste and set aside.
Heat oil in a cast iron skillet and place the marinated mushrooms in it. On medium to medium high heat, roast the mushrooms.
Press down the mushrooms with a spatula or a heavy pan, flip it when one side is well charred and repeat for the other side.
Chope the mushrooms are per your liking and set aside.
Heat oil in a pan. Add onions and cook for 3 to 4 minutes until translucent.
Add the aromatics in the order: green chilli, ginger garlic paste or minced ginger and garlic. Saute for 30 seconds.
Add turmeric, red chilli powder, ground cumin, coriander powder and optionally deghi mirch (for the red colour).
Add tomato and cashew paste, garam masala, and the charred mushrooms. Mix well.
Deglaze the pot to remove any browning on the bottom of the pot and add to the sauce.
Stir in dried fenugreek leaves (Kasuri methi), soy/almond/coconut cream, and garnish with chopped coriander/cilantro.
Mix well and serve with hot basmati rice or roti!