Marinate the chicken with yogurt, lemon juice, and spices. Let it sit for at least 20 minutes (overnight makes it even better).
Heat ghee in a skillet, then sauté the onions until they turn golden brown. Remove half for garnishing later.
Add ginger-garlic paste, stir for 30 seconds, and then pour in the pureed tomatoes. Cook until the mixture thickens and deepens in color.
Stir in the cashew paste, followed by coriander, chili powder, cardamom, and garam masala. Let the flavors meld beautifully.
Add the marinated chicken and coat it well in the sauce. Let it sear slightly before pouring in water.
Simmer for 25 minutes until the chicken is tender and bursting with flavor.
Stir in the cream, mix well, and let it cook for 5 more minutes.
Garnish with fried onions and fresh cilantro.
Serve hot with naan or rice, and try not to eat the whole pot.