Peel and remove the pith from the bottle gourd and prick the outside uniformly with a fork. Hollow out the inside of the gourd, then rub some salt all over the outside. Place on a tray and set aside for about 30 minutes.
Put the saffron in a small bowl, add the kewra water and soak until required.
Heat the oil in a large, heavy-based pan over medium heat, add the onions and fry for about 5-7 minutes, or until golden brown. Using a slotted spoon, transfer the onions to a small blender or food processor and process to make a paste. Set aside.
Add the cashew nuts and chironji kernel paste to the pan and fry for about 1 minute, or until they turn pink. Remove from the pan and chop the nuts with a sharp knife, then set aside.
Return the pan to heat and add the khoya. Fry for a few minutes until it changes color, then mix in the fried nuts and remove from the heat. Reserve the oil left in the pan.
Put the poppy seeds in a small, dry frying pan (skillet) over medium heat and stir-fry for about 30 seconds until roasted.
Transfer to a mortar or small blender, add the cloves, cardamom pods, and mace and pound or process, adding a little water if necessary, to make a paste.
Pat dry the bottle gourd with kitchen paper (paper towels) and fry in the reserved oil for a few minutes until evenly browned. Remove from the pan.
Mix the khoya and nut mixture with a little salt and 2 tablespoons yoghurt, then use to fill the inside of the gourd. Mix the onion paste, chilli powder-poppy seed paste, and the saffron mixture together in a bowl and season with salt.
Place the bottle gourd in a large flat pan and pour the yoghurt mixture on and around it. Use a spatula to push some of the mixtures underneath it. Pour the remainder of the yoghurt on top and cover with a tight-fitting lid. Place over low-medium heat and cook for about 30 minutes. Garnish with chopped coriander.