In a large bowl, mix 500 grams of all-purpose flour, 10 grams of salt, 50 grams of sugar, and 7 grams of instant yeast.
Gradually add 250 ml of warm milk and mix until a soft dough forms. Knead the dough for 10 minutes until smooth and elastic.
Cover the dough with a damp cloth and let it rest for 1 hour or until it doubles in size.
Meanwhile, place 250 grams of cold unsalted butter between two sheets of parchment paper and roll it into a thin rectangle. Refrigerate for 30 minutes.
Roll out the dough into a large rectangle, place the chilled butter in the center, and fold the dough over the butter, enclosing it completely.
Roll out the dough again into a rectangle, fold it into thirds, and refrigerate for 30 minutes. Repeat this process two more times.
After the final chilling, roll out the dough into a large rectangle about 5 mm thick. Cut the dough into triangles with a sharp knife.
Starting from the wide end, roll each triangle tightly towards the pointed end, forming a crescent shape.
Place the croissants on a baking tray lined with parchment paper, cover with a damp cloth, and let them rise for 1 hour or until puffy.
Preheat the oven to 200°C. Brush the croissants with a beaten egg for a glossy finish.
Bake the croissants for 20-25 minutes or until golden brown. Allow them to cool on a wire rack before serving.