01 - Rinse basmati rice under cold water until water runs clear. Soak for 20 minutes, then drain thoroughly.
02 - Bring 3 cups water and 1 tsp salt to a boil in a saucepan. Add rice and simmer uncovered until 70% cooked, approximately 7-8 minutes. Drain and set aside.
03 - Place eggs in a pot of cold water. Bring to a boil, then simmer for 8 minutes for medium-hard yolks. Cool under running water, peel, and set aside.
04 - Heat oil or ghee in a large heavy-bottomed pan over medium heat. Add cumin seeds, cardamom pods, cloves, cinnamon stick, and bay leaf. Sauté for 1 minute until fragrant.
05 - Add sliced onions and cook until golden brown, approximately 8-10 minutes.
06 - Stir in ginger, garlic, and green chilies. Sauté for 2 minutes until fragrant.
07 - Add chopped tomatoes, turmeric, coriander, garam masala, chili powder, and salt. Cook until tomatoes soften and oil separates, about 5-7 minutes.
08 - Lower heat and stir in yogurt. Cook for 2 minutes to blend flavors.
09 - Spread partially cooked rice over tomato-ginger mixture. Gently mix once or twice to create marbled effect. Nestle peeled eggs into rice. Cover tightly and cook on very low heat for 15 minutes using dum method.
10 - Remove from heat and let stand 5 minutes. Fluff gently with a fork. Garnish with cilantro, mint, fried onions, and lemon wedges before serving.