In a large mixing bowl, combine the flour, sugar, and salt on one side, and yeast on the other. Add warm milk and the softened butter. Mix until a rough dough forms, then knead gently for 3–4 minutes until smooth. Do not overwork it. Shape into a rectangle, wrap, and chill for 30 minutes.
Place the cold butter between two sheets of baking parchment. Pound and roll it into a flat square roughly 12 cm across. Keep it chilled but pliable, not too hard. The butter should be the same consistency as the dough for even lamination.
On a lightly floured surface, roll the chilled dough into a square about 25 cm wide. Place the butter block diagonally in the centre so it forms a diamond shape over the dough. Fold the dough corners over the butter to enclose it completely, sealing the edges.
Roll the dough gently into a rectangle three times longer than it is wide. Fold it into thirds, like folding a letter. Wrap in cling film and chill for 30 minutes. This begins the layering process.
Repeat the rolling and folding process twice more, chilling for 30 minutes between each fold. Each roll adds more layers, creating the signature flaky texture. Keep the dough cold throughout to prevent the butter from melting.
After the final rest, roll the dough into a large rectangle about 4 mm thick. Trim the edges to neaten. Cut into long triangles with a base of roughly 8 cm. Roll each triangle from base to tip to form a crescent. Curve the ends slightly inwards.
Place the shaped croissants on a parchment-lined baking tray. Cover loosely with a clean tea towel and leave to rise for about 1½ to 2 hours at room temperature until doubled in size and slightly jiggly when moved.
Preheat the oven to 200°C (180°C fan). Brush each croissant gently with beaten egg, ensuring an even glaze without deflating the dough. Avoid drips pooling underneath, as they can burn during baking.
Bake for 18–22 minutes or until puffed and richly golden brown. Allow to cool slightly on a wire rack before serving. The crust should be crisp, with visible, buttery layers inside.
Serve warm with butter and jam, or enjoy plain to savour the pure buttery flavour. Croissants pair beautifully with coffee or hot chocolate for a classic French breakfast experience.