Place a large, high-rimmed pan over medium-high heat. Add half of the ghee and diced onion and saute for 5-6 minutes, or until soft and translucent. Remove and let cool slightly.
Add mince to a bowl with the sautéed onions, garam masala, salt, and pepper. Mix well and portion into even-sized koftas (meatballs). Set aside.
Place the same pan back over medium heat and add the remaining half of ghee or clarified butter. Add the koftas and sear for 5-6 minutes or until browned all over. Remove from the pan to rest. Don't worry; the koftas will not be fully cooked at this stage.
Using the same large, high-rimmed pan again, place it over medium heat and add the ghee or clarified butter. Add the onions and saute for 8-10 minutes or until soft, mixing regularly. Add the garlic, ginger, coriander roots, stems, and chilli and saute for 2 minutes, mixing regularly. Add the spices and cook for 1 minute.
Add diced tomatoes, tomato paste, chicken stock, and coconut cream and bring to a simmer, mixing well. Turn the heat down to low and simmer for 10 minutes to reduce and thicken slightly. Add the koftas and any resting juices and cook for 10 minutes to finish cooking the koftas and for the gravy to reduce to a thick, saucy consistency. Check the seasoning and remove from the heat.
For the rice, add all of the spices to a saucepan over medium heat and toast for 2 minutes until fragrant and slightly cracking. Add basmati rice, cold water and a pinch of salt and boil over high heat. Place on a lid, lower the heat, and cook for 12 minutes. Turn off the heat and steam for 4 minutes. Remove the lid, and fluff with a fork or spatula.
Serve the koftas with the curry and naan (optional). Garnish with fresh coriander (cilantro). Dig in.