Heat oil/ghee in a pan and fry the onions till brown. Remove the onions with a slotted spoon and set aside.
In the same pan add the ginger garlic paste and fry till raw smell vanishes.
Next add in the yogurt, biryani powder and salt. Stir well and cook till oil starts separating and floating in top of the gravy.
Remove the gravy from the pan and set aside.
In the same pan, add some biryani powder and oil, if necessary. Mix well.
Add the eggs to this masala and cook till coated well.
In a large enough vessel, add sufficient water. Add salt, whole garam masala and little oil.
Bring the water to a boil and add the soaked basmati rice. Parboil the rice to 80%. The rice should be cooked yet feel a little grainy.
Strain and remove the excess water.
In a pan, spread half the rice at the bottom, pour the prepared gravy, spread half the fried onions.
Spread the remaining rice, remaining onion, coriander leaves, mint leaves, saffron milk, ghee and lemon juice.
Place the eggs on top. Cover tightly. Either with a foil or seal the lid with chapati dough.
Cover and cook on extremely low heat for 15 minutes.
Wait for 10 more minutes before opening the cover.
Open the lid, mix very gently one portion of the rice and serve hot.