Mix all the marinade ingredients together and season with salt and pepper to taste.
Cut the fillets into 5 cm (2 in) cubes and put them in a shallow dish. Add the marinade and mix them gently together, coating the fish completely. Cover with cling film and leave in a cool place for 2 hours, or overnight in the refrigerator. Bring the fish back to room temperature before you start cooking it.
Heat the oven to 150°C (300°F, gas mark 2) and heat the grill to high. Line the grill pan with foil and brush with the oil. Arrange the fish in the grill pan in a single layer. Strain the marinade, reserving the spring onions, and spoon it over the fish. Grill for 6-7 minutes until the edges of the fish begin to brown. Then turn off the grill and gather the corners of the foil, covering the fish loosely to keep it warm.
Meanwhile, rinse and drain the rice. Bring 600 ml (1 pint) of water to the boil in a saucepan and add the bay leaves, cinnamon, butter and salt to taste. Add the rice and return to the boil for 3 minutes. Reduce the heat, cover and simmer for 8 minutes until all the water has been absorbed: it will not be completely cooked. Take the pan off the heat and leave it, uncovered, for 4 minutes.
Unwrap the fish, pour the cooking juices into the rice and stir them through. Place a few pieces of fish and the reserved spring onions in a single layer in the base of a casserole, leaving small gaps between the fish. Sprinkle with chopped coriander and cover with a layer of rice. Continue alternating layers of fish, coriander and rice, finishing with rice.
Soak a clean tea towel in water and wring it out. Place it over the rice, then cover the casserole with a tight-fitting lid. If it is not tight, cover the dish with a piece of foil first, then with the lid. Bake for 20-25 minutes so the rice finishes cooking in the steam and all the flavours develop. Garnish with coriander and serve.