Crumble the yeast into a large bowl. Melt the butter in a small saucepan, add the milk and saffron, and heat until lukewarm. Pour the mixture over the yeast and stir until the yeast has dissolved. Stir in the sugar, salt, cardamom and flour. Knead for at least 5 minutes to make a smooth, pliable dough. Cover the bowl and set the dough aside to rest for 60–90 minutes or until it has doubled in volume.
Meanwhile, combine all of the ingredients for the filling in a small bowl and set aside.
Lightly dust your benchtop with flour and roll out the risen dough to a 50 x 30 cm rectangle. Spread the filling mixture over the dough, leaving an edge of about 1 cm. Roll the dough up from the long side. Use a sharp knife to cut the rolled-up dough in half lengthways to make two long pieces. Turn the cut surfaces up and twist the two pieces into a plait, ensuring that the cut surfaces (showing the filling) face upwards.
Preheat the oven to 200°C/Fan 180°C/Gas 6. Transfer the plait to a baking tray lined with baking paper and shape it into a ring by connecting the two ends. Loosely cover the ring and leave it to rise again for 45 minutes. Whisk the egg and milk and brush it over the ring. Bake until golden brown, about 18 minutes. Leave to cool a little on a wire rack.