Rinse the basmati rice under cold water until the water runs clear. Soak the rice in water for about 20-30 minutes. This step will help to achieve fluffy and separate grains of rice.
In a large, heavy-bottomed pot or pressure cooker, heat the ghee or vegetable oil over medium heat.
Add the cumin seeds, bay leaf, black peppercorns, cloves, green cardamom, and cinnamon stick. Sauté for a minute or until the spices release their aroma.
Add the sliced onions and sauté until they turn golden brown.
Stir in the chopped ginger and minced garlic, and cook for another minute.
Add the sliced mushrooms to the pot. Sauté the mushrooms until they release their moisture and turn slightly golden brown. This should take about 5-7 minutes.
Drain the soaked rice and add it to the pot. Gently stir the rice with the mushrooms and spices, coating each grain with the flavors.
Add turmeric powder, garam masala, red chili powder (if using), and salt to the rice and mushrooms. Mix well.
Pour in the water and bring it to a boil. Reduce the heat to low, cover the pot with a tight-fitting lid, and let the rice cook until it's fully done and the water is absorbed. This should take about 15-20 minutes on the stovetop and 5 minutes after the first whistle if using a pressure cooker.