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, simmer uncovered until 70% cooked (7-8 minutes). Drain and set aside.
03 - Place eggs in cold water pot. Bring to boil, simmer 8 minutes for medium-hard yolks. Cool under running water, peel, and set aside.
04 - Heat oil or ghee in heavy-bottomed pan over medium heat. Add cumin seeds, cardamom, cloves, cinnamon, and bay leaf. Sauté 1 minute until fragrant.
05 - Add sliced onions, cook until golden brown, about 8-10 minutes, stirring occasionally.
06 - Stir in ginger, garlic, and green chilies. Sauté 2 minutes until fragrant.
07 - Add chopped tomatoes, turmeric, coriander, garam masala, chili powder, and salt. Cook until tomatoes soften and oil separates, 5-7 minutes.
08 - Lower heat, stir in yogurt, and cook 2 minutes until fully blended.
09 - Spread partially cooked rice over tomato-ginger mixture. Gently mix once or twice to create marbled effect.
10 - Nestle peeled eggs into rice. Cover tightly, cook on very low heat 15 minutes to meld flavors.
11 - Remove from heat, let stand 5 minutes. Fluff gently and garnish with cilantro, mint, fried onions, and lemon wedges.