In a pot heat oil and fry onions untill golden brown.
Takes them out on paper towel and set aside.
In the same oil add bay leaves, cloves, peppercorns, cumin, mace, green and black cardamom. Temper for a minute and add garlic ginger paste.
Add Meat and fry until it changes colour.
Add salt, red chilli, paprika, turmeric and coriander powder. Fry the meat for around 5-7 minutes. Add a dash of water if spices are sticking to the pan.
Once you see oil separating, add 3/4 cup of water, cover and cook for around 30 minutes if using a normal pot. If you are using pressure cooker or Instant pot pressure cook it for 15 minutes.
Blend yoghurt and fried onions together using stick blender. Alternatively crush fried onions with hands and mix them in the yoghurt.
Remove the pot from heat and add yoghurt to the meat. Stir in until well combined.
Return it back to heat and cook on medium flame until water from yoghurt evaporates and oil starts to separate.
You can add little water to adjust the consistency of gravy. Cover and cook on low flame for 10 minutes.
Sprinkle garam masala. Garnish it with some cilantro/coriander.