Heat your oil in a large pot or wok.
Add the whole spices - cumin seeds, cloves, black pepper, cinnamon stick
When they start to crackle then add the onions, saute till the edges turn golden brown.
Add the ginger and garlic, saute for a minute or two.
Now put in your powders/spices.
Cook till it forms a cohesive paste, adding a splash of water till necessary. It's done when a film of oil rises above the onion paste.
Throw in your tomatoes cooking on medium high heat until they soften, caramelize and become one with the spice paste.
Time to add your meat, make sure to brown it evenly, once it is browned on each side add two cups of very hot water and cover your pot. For instant pot add 1.5 cup water.
Bring the liquid in the pot to boil, then simmer for 45 minutes or an hour to get the meat super tender. If using the instant pot put it on manual (pressure) for 20 minutes then quick release.
Dry up the water in the pot till the masala looks decidedly jammy and add your tomato paste, now check for seasoning.
Add your garam masala, half your green chillies and half your cilantro. Give it a whirl and let it cook on low for 3-4 minutes then take it off the heat.
Squeeze over a little lemon juice if you want then top with remaining chillies and cilantro.