Warm up the milk until pleasantly warm to the touch. It's best to check the temperature with a thermometer - it should be 100-110°F (38-43°C). The milk can't be too cold (yeast won't work) or too warm (you will deactivate the yeast completely).
If using active dry yeast: add the yeast to the warm milk, stir, and leave for 10 minutes. After this time there should be foam on the surface of milk - this is a sign that the yeast is working. If there is no foam, you need to start over. If using instant yeast - they can be added directly to the flour.
Add the flour into a large mixing bowl. Stir in the salt. Add eggs, sugar, orange zest, activated active dry yeast with milk or instant yeast and warm milk. Don't add the butter yet.
Stir the dough with a wooden spoon until roughly combined.
Knead the dough using a stand mixer fitted with a dough hook attachment. Knead the dough at low speed (setting 2) for about 10 minutes, until smooth and well-combined (it will be sticky and loose, don't add more flour).
Now gradually add the butter, 2-3 small cubes at a time. Add the next portion of butter only if the previous one is incorporated into the dough. The whole process of adding butter should last 10-15 minutes. After adding the butter knead the dough for a couple more minutes.
The dough is ready when it's shiny, silky-smooth, and doesn't stick to your fingers and sides of the bowl. You should be able to grab the dough and lift it out of the bowl without scraping it from the sides of the bowl. The dough won't be firm, it will be very loose! - this is how it supposed to be, don't add more flour! If the dough is very sticky and you're sure you've measured everything correctly (see notes for how to measure flour), you just need to knead it longer until it is no longer sticky.
First rise: Cover the bowl with plastic foil or kitchen towel and place in a warm place until doubled in volume (or almost doubled in volume, it will rise further in the fridge). It should take about 1-1.5 hours (it can be even 3 hours depending on how warm is in your place). I'm putting the bowl into the oven with the light turned on (no temperature, just the light).
Second rise (in the fridge): Take the dough out of the bowl and knead it a couple of times. Form a smooth ball and put it again into the bowl. Cover with plastic foil or kitchen towel and put in the fridge for a minimum of 6 hours or overnight (for up to 24 hours).
Pour the orange juice into a cup and add the cranberries. Put them in the fridge to soak overnight.