Peel the onions, and cut in half. Thinly slice all the onions. Tip: To avoid tears, keep the root intact while slicing the onion.
Peel the ginger by scratching it with a knife of a spoon. Cut in thin slices then make fine juliennes. Slice the green chilies.
Put a big pot on medium heat and add ghee/oil. Once the ghee/oil is hot, add the sliced onion. Stir and fry until the onion just starts to get brown. It will take around 7-8 minutes on medium heat.
Once the onion just start to brown, take out half of them from the pot and reserve for adding later. Fry the remaining half until it gets brown through. Keep stirring to ensure even heat.
Once the onion turns brown, add the beef, ginger-garlic paste, black cardamom, green cardamom, dried red chilies, red chili powder, coriander powder, turmeric powder, garam masala, yogurt and salt. Mix everything well to coat the meat evenly with the spices.
Turn the heat to medium low and cover with a good fitting lid. Let it cook for 1 hour or until the meat is tender. (Do not overcook)
Once the meat is tender, uncover and turn the heat to high. Add the reserved fried onion, ginger juliennes and chopped green chilies. Stir and cook until all the liquid has evaporated. (This will take about 8-10 minutes). Keep stirring from time to time to avoid burning. If the stew starts to stick at the bottom, reduce the heat and continue cooking.
The color of the stew will get darker with cooking. Once all the liquid has gone, turn off heat. Serve with naan or chapati.(For paleo/Whole30 serve with cauliflower rice).