Place a small frypan on medium heat and add the dried Kashmiri chillies, cumin, coriander and fennel seeds, the cardamom pods, cassia stick, peppercorns, cloves, and mace. Toast the spices until they become aromatic then remove them from the heat. When cool enough to handle grind to a fine powder. Set aside.
Make a smooth paste of the onion, ginger, and garlic, adding as little water as possible.
Place the meat in a bowl, then add the ground spices, the paste, and the turmeric. Mix well, massaging the marinade into the meat. Cover and allow to marinate overnight.
to cook
Heat the oil over medium heat in a wide pan. Add the sliced onion, sprinkle with the salt and fry for about ten minutes, or until the onions turn a golden brown. Be careful not to burn the onions.
Add the meat with the marinade and any juices to the pan. Mix well and fry for five minutes or until meat is browned all over.
Add the hot water, mix well, and cover the pan. Cook on low heat for 20 minutes.
Remove the lid, increase heat to medium and start to fry the meat, stirring frequently. To avoid burning as it dries, add 2 tablespoons of water, if needed, and mix well. Fry the meat, stirring often, for 30 minutes, or until well-cooked and browned. Add more water, in small amounts, as required, without making the dish too liquid. The dish should look dark and be quite dry by this stage.
Add enough water to the pot to just cover the meat. Replace the lid and cook for 30 minutes, or until the meat is tender and the gravy comes to desired consistency.
to serve
Reduce heat to low and add the coriander stalks and lemon juice. Mix well, but carefully so that you do not break up the meat. Turn off the heat, sprinkle with garam masala and serve.
notes
Make sure the beef is in big pieces. We suggest 5cm (2 inch) pieces. You need something large enough to stand up to long cooking.