Fine chop or puree the onions. If you prefer to puree the onions, first boil diced onions in 2 cups of water for 4 mins until transparent. Drain the water and puree them in a blender.
Refer notes below to boil eggs perfectly. Wipe dry the boiled eggs or air dry until moist free. Prick each egg with a fork 2 to 3 times. We do this so the eggs don't splatter oil and burst in the pan while frying.
Heat 1 teaspoon ghee or oil in a nonstick pan & Fry the eggs until golden & slightly blistered. Remove the eggs to a plate & optionally sprinkle 2 to 3 pinches each of chilli powder & garam masala.
Heat 2 tbsp oil and add bay leaf, cardamoms and cinnamon.
When they begin to sizzle, add onions & green chilli. Saute onions until golden and the raw smell has almost gone.
Add ginger garlic paste and saute until the raw smell goes off, for about a minute.
Then add tomatoes and saute well until the mixture turns mushy.
Next add red chili powder, garam masala, coriander powder, turmeric and salt. Saute everything well until a nice aroma comes out & the mixture leaves the sides of the pan.
Pour water 1 to 1¼ cups water and mix well. Cover and cook until the curry thickens and you see traces of oil over the curry.
Taste test and adjust salt. If required add sugar. Add the fried eggs and kasuri methi. Mix and simmer for a while. Sprinkle chopped coriander leaves. Serve punjabi egg curry with roti or naan or plain rice.
Optional - Pour 3 to 4 tbsps cream or Blend together 10 cashews with half cup water to smooth milk. Pour it to the curry. Cook covered for 2 to 3 mins until the curry turns thick.
Press saute button and add oil to the inner pot of the Instant pot. Add spices & bay leaf.
Add ginger garlic and fry for 30 seconds. Then add the tomatoes and salt.
Fry until the tomatoes breakdown. Add chilli powder and turmeric. Saute for a min.
When the cumin begins to sizzle add onions and green chilli. Saute until the onions turn light golden.
Then pour 1 cup water and mix well to release any bits of food stuck at the bottom of the pot.
Place a long leg trivet. Place your basmati rice bowl. Cover it. Then place the eggs in another bowl. Cover it.
Secure the IP with the lid. Position the steam release handle to sealing.
Press the pressure cook button (high pressure). Set the timer to 7 mins.
When the IP is done, press the cancel button.
When the pin drops, open the lid. Do a quick manual release by moving the steam release handle from sealing to venting. You can also wait for 5 mins for a natural release.
Pour cold water to the eggs and let them cool down. Peel the eggs and prick them with a fork.
Press the saute button and simmer the eggs in the curry for a minute. Then pour the cream or cashew milk or coconut milk.
Stir well and cook until the curry thickens. Taste and add more salt if needed. Turn off and garnish with coriander leaves.