Heat Oil in the pan and fry onions on medium heat until lightly golden.
Add meat along with ginger garlic paste and fry for around 7-8 minutes until meat changes its colour.
Add all the spices except garam masala and fry for 2-3 minutes
Put enough water to cover meat and cook on low flame, till meat is tender. ( See Notes) You can also use pressure cooker to tenderise meat.
At this stage the meat will be tender and the gravy is formed. Add yoghurt and cook untill water evaporates and oil starts to separate.
Add tomatoe puree and cook for few minutes and add potatoes, garam masala and whole green chilli.
You can add little water to adjust the gravy thickness and cook on low flame for 25-30 mins or until potatoes are done. ( See notes)
Garnish with coriander and garam masala.