In a large bowl, mix the flour, sugar, salt, and yeast.
Gradually add the cold milk until the mixture forms a soft dough.
Knead the dough for about 5 minutes until smooth.
Shape the dough into a ball and refrigerate for 30 minutes.
Roll out the cold butter between two sheets of parchment into a rectangle.
Roll the chilled dough into a larger rectangle, then place the butter in the center.
Fold the dough over the butter, sealing the edges.
Roll out the dough into a long rectangle, then fold it into thirds.
Repeat this rolling and folding process two more times, chilling in between.
Roll the final dough into a rectangle, cut into triangles, and shape into croissants.
Let the shaped croissants rise for 1 hour before baking.
Brush with egg wash and bake at 400°F (200°C) for 20-25 minutes.