Boil water in a small saucepan and carefully lower the eggs into the pan. Reduce to a simmer and cook for 8 minutes before removing them from the water. Place the eggs in a bowl of cold water for a few minutes to cool, then peel them and slice into segments. Set aside.
Meanwhile, add the milk and ½ cup water to a pan on the stovetop over low heat and bring to a gentle simmer.
Add the smoked haddock to the pan, skin side down, and cook for 5-6 minutes until the fish just cooked and flaky. Remove the pan from heat.
Heat a deep, wide pan over a medium flame, then add the ghee and chopped onion. Fry for 3-4 minutes, then add the garlic and grated ginger and cook for a few more minutes until fragrant.
Add the curry powder, mustard seeds, and ground coriander to the pan and fry for 1-2 more minutes.
Add the basmati rice to the pan along with the vegetable stock. Stir everything together, reduce the heat to medium-low, and let the rice gently simmer for 10 minutes, uncovered.
Remove the cooked smoked haddock from the poaching milk and flake with a fork, discarding the skin. Add the poaching milk to the basmati rice along with the chopped tomato. Continue to simmer for another 8-10 minutes until the rice is cooked through.
Once the rice is tender, remove the pan from the heat and stir in the flaked smoked haddock, eggs, and cilantro. Serve hot.