First, make the curry sauce. Melt the butter in a heavy-based pan and gently cook the shallots, garlic and ginger in it without allowing them to colour. Add all the spices and cook for another minute to release their flavours. Add the fish stock, bring to the boil and allow it to reduce by half. Pour in the cream and simmer until reduced by half. Blend the sauce in a liquidiser or with a stick blender until smooth and strain it through a fine-meshed sieve. Adjust the seasoning if necessary.
Rinse the rice a couple of times in cold water to remove any starch and cook it in plenty of boiling salted water with the cumin and nigela seeds for about 12-15 minutes until just cooked. Briefly drain it in a colander and return it to the pan off the heat with a lid on. This allows the rice to steam dry, giving it a light fluffy texture.
To serve, soft-boil the eggs for 4 minutes, then run under the cold tap for a couple of minutes so you can peel them. Re-heat sauce and add the cooked smoked haddock or salmon or mackerel. Put the rice into a bowl, spoon over the fish and sauce, then place an egg on each.