Cook the rice: Heat 1bsp oil in a sauce pan, add 1 bay leaf, 2 cloves, 1” piece of cinnamon and 2 cardamom pods; cook until fragrant, add the drained rice and sauté until the rice is coated with the oil. Pour 5-6 cups of boiling water to the rice and cook for 5-6 minutes (8-9 minutes if not soaked) or until the rice is nearly done.
Fried Onions: Heat 2-3tbsp oil in a large saucepan, add the thinly sliced onion and cook until browned around the edges. Remove from the pan and set aside to use later.
Curry/ Spice Mixture: Grind the coarsely chopped onion, tomatoes and ginger+garlic into a smooth paste.
Heat 2tbsp oil in the pan; add the remaining whole spices and fry for 20 seconds. Add the ground onion paste with ¼ cup of water, salt and all the powdered masalas. Stir well to mix and cook on medium-high flame until the excess moisture has dried off, then reduce the heat and cook until the paste is cooked through, about 10-12 minutes.
Stir in the yogurt, mix well and cook for 2 minutes. Add more water if the mixture looks too dry.
Taste and adjust the seasoning, compensating for the bland eggs and rice.
To Assemble: In a medium saucepan, add half of the rice layer with most of the curry sauce and place the eggs on top, cut side up. Spoon over the remaining curry, scatter the fried onions and finish with the remaining rice.
Scatter 1tbsp butter randomly over the surface.
Cover tightly with the lid and cook on a low heat for 10 minutes or until the rice is cooked through and all the flavors have a chance to mingle.
Garnish with the chopped cilantro and serve with a raita of your choice.