Soak raw cashews in boiling water for at least 15 minutes. The longer they soak, the softer they get and the easier they are to process later.
Add oil to a medium saucepan over medium heat. When the oil is hot, fry the whole spices for about a minute: cinnamon, green cardamom, and cloves. Make sure the spices do not start to burn.
Add onions and cook until they are translucent, which should take 4-5 minutes. Stir occasionally.
Add ginger, garlic, and green chilis. Stir for about 2 minutes before adding ground spices. Add the ground spices (coriander, turmeric, red chili powder) and stir frequently for a minute.
Add tomatoes and salt. Increase heat to medium-high and cook until the tomato juices have mostly reduced. Take the pan off the heat, pour its contents into a bowl, and let it cool slightly. Once cooled, blend the contents of the saucepan with the cashews and ½ cup water.
Meanwhile, add vegan butter to the same saucepan over medium heat. Once melted, add the mushrooms and cook until they are soft and mostly cooked. Then add peas. Cook the peas for a few minutes before adding the blended gravy.
Use ½ cup water to capture anything remaining in the processor/blender and add this water to the saucepan. Simmer on medium heat until the peas are fully cooked, which may take up to 15 minutes.
Finish with garam masala and crushed kasoori methi. Stir it all together for a few minutes before tasting for salt and serving with roti, paratha, or naan.