Heat around ½ a tablespoon of oil in a pan. Add onion, garlic, and ginger. Cook until the onion starts turning brown.
Add chopped tomato, green chilies, and some salt. Cover the pan and cook until the tomatoes turn mushy. Turn off the heat and allow the mixture to reach room temperature.
Put the cooked onion tomato mix into a grinding jar or food processor and make a smooth paste.
Heat the remaining ½ a tablespoon of oil in a pan. Add cumin seeds, bay leaf, pepper, cloves, green, and black cardamom. Saute for a few seconds or until the spices become fragrant.
Add onion tomato paste, remaining salt, turmeric powder, coriander powder, and red chili powder. Mix and cook for 5-6 minutes.
Add chopped mushrooms, mix, and cover the pan. Cook until the mushrooms are cooked well. If the gravy is too thick add some water to get the desired consistency and cook for another 2-3 minutes.
Add cream and stir continuously for about a minute.
Add kasoori methi and garam masala. Mix everything and cook for a minute. Turn off the heat.
Garnish with chopped cilantro. Serve hot with roti, naan, or rice.