Rinse long-grain basmati rice with water 2-3 times until the water runs clear. Soak the rice in water for 15-20 minutes.
Heat ghee in a large pot over medium-high heat.
Once the ghee is hot, add whole green cardamoms, cloves, cinnamon stick, bay leaves, and whole black peppercorns and let them crackle for 5-6 seconds.
Add whole cashew nuts and fry until they turn slightly brown (40-60 seconds). Keep stirring while frying.
Add onions, green chilies, ginger, and garlic, and cook for 6-8 minutes until the onions are lightly browned.
Now add mint leaves and cilantro (coriander) and saute for a minute.
Add water, salt, garam masala powder, and lime juice.
Drain the water from the rice and add it to the pot and stir gently.
Reduce the heat to low. Cover the pot with a tight-fitting lid and cook for 20-25 minutes until all the water is absorbed and the rice is cooked well.
Remove the pot from heat and let it rest for 5 minutes.
Open the lid and fluff the rice gently using a large fork. Serve hot.