Clean the mushrooms by rinsing or wiping them dry, then slice off part of the base stalk and chop them, and set aside.
Grind onions, ginger, and garlic to a smooth paste without adding water, transfer to a bowl, then blend tomatoes into a puree and set aside.
In another bowl, whisk yogurt until smooth.
Heat oil in a pan, add whole spices—cumin, bay leaf, cinnamon, black and green cardamoms, cloves, and mace—frying until aromatic.
Lower the heat and stir in the onion-ginger-garlic paste, covering the pan if it splutters.
Cook until thick and golden, then add the tomato puree along with turmeric, red chili powder, and coriander powder.
Sauté until oil separates from the masala.
Add the mushrooms and whisked yogurt, stirring quickly, then simmer for 2-3 minutes before adding water and salt.
Cover and cook on low to medium heat for 18-20 minutes until mushrooms are tender.
Finish with crushed dried fenugreek leaves, garam masala, and chopped coriander, optionally adding heavy cream for richness.
Serve hot.