Begin by gently warming the milk in a small saucepan over low heat until it's just warm to the touch (about 110°F or 43°C). Remove from heat and add the saffron. Let it steep for about 10 minutes.
In a large mixing bowl, combine the warm saffron milk with the sugar and active dry yeast. Stir gently and let it sit for about 5-10 minutes until the mixture becomes frothy.
Add the unsalted butter (melted), eggs, sour cream, and salt to the yeast mixture. Whisk until all the wet ingredients are well combined.
Gradually add 3 cups of all-purpose flour and ground cardamom to the wet mixture. Stir with a wooden spoon until a dough begins to form. If the dough is too sticky, add more flour, a little at a time, until it is manageable.
Transfer the dough to a lightly floured surface and knead for about 8-10 minutes until it is smooth and elastic. You can also use a stand mixer with a dough hook for this step.
Place the kneaded dough in a greased bowl, cover it with a kitchen towel, and let it rise in a warm place for about 1 hour, or until it has doubled in size.
Once risen, punch down the dough to release any air. Incorporate the raisins by kneading them gently into the dough. Divide the dough into equal portions and shape each into a bun or your desired shape.
Place the shaped buns on a lined baking sheet. Cover again and let them rise for another 30-45 minutes until puffed and nearly doubled.
Preheat your oven to 350°F (175°C) during the last 15 minutes of the second rise.
Beat the additional egg in a small bowl and brush it over the tops of the buns for a beautiful golden finish.
Bake the buns in the preheated oven for 15-20 minutes or until they are golden brown. Keep an eye on them to prevent over-baking.
Once baked, remove the buns from the oven and let them cool slightly on a wire rack. Serve warm or at room temperature, and enjoy the delightful aroma of saffron.