In a skillet, fry the onions until golden. Remove and grind or blend into a paste.
Heat oil and ghee in a heavy-bottomed pot over low flame. Add all whole spices and temper for 1 minute until fragrant.
Add the ground onion paste and sauté on medium heat until the raw smell disappears and the mixture turns golden brown, about 5-7 minutes.
Mix in ginger-garlic paste, cumin powder, coriander powder, cashew paste, whisked yogurt, green chilies, salt, and sugar. Sauté the mixture for 2 minutes, stirring continuously.
Add lamb pieces and increase heat to medium-high. Brown the lamb lightly on all sides, about 8-10 minutes.
Pour in boiling water, bring to a boil, then reduce heat to low. Cover and simmer for 35-40 minutes, or pressure cook for 20 minutes until lamb is tender.
Once lamb is fork-tender, add shahi garam masala, saffron milk, and kewra water. Simmer uncovered for 5-7 minutes to thicken the gravy.
Taste and adjust salt and sugar as needed. Serve hot with basmati rice or naan.