Make the Dough: In a large bowl, whisk together the flour, sugar, yeast, and salt. Add the warm water and stir until a shaggy dough forms.
Knead the Dough: Turn the dough out onto a lightly floured surface and knead for 5-7 minutes, until it becomes smooth and elastic.
First Rise: Place the dough in a lightly oiled bowl, turning to coat. Cover and let rise in a warm place for 1 to 1 1/2 hours, or until doubled in size.
Prepare the Butter Block: While the dough is rising, prepare the butter. Place the cold butter between two sheets of parchment paper. Using a rolling pin, pound and roll the butter into a 6x8 inch rectangle. Keep it chilled.
Laminate the Dough (First Turn): Punch down the risen dough and roll it out into a 12x16 inch rectangle. Place the chilled butter block on one half of the dough. Fold the other half of the dough over the butter, sealing the edges.
Roll and Fold: Gently roll the dough into a 12x16 inch rectangle again. Be careful not to press too hard and squish the butter out. Fold the dough into thirds, like a letter. This is your first "turn."
Chill: Wrap the dough in plastic wrap and chill in the refrigerator for 30 minutes.
Second and Third Turns: Repeat steps 6 and 7 two more times, rolling, folding, and chilling the dough. This creates all those beautiful layers.
Final Chill: After the third turn, wrap the dough and chill for at least 2 hours, or preferably overnight. This allows the gluten to relax and the butter to firm up, making the dough easier to work with.
Shape the Croissants: On a lightly floured surface, roll the chilled dough into a large rectangle, about 1/4 inch thick.
Cut the Triangles: Cut the dough into triangles. I usually aim for triangles that are about 4 inches wide at the base and 8 inches long.
Add Filling: Sprinkle a small amount of cheddar cheese and chopped chives at the base of each triangle.
Roll and Shape: Starting at the base, roll up each triangle towards the tip. Curve the ends slightly to create a crescent shape.
Second Rise: Place the shaped croissants on a baking sheet lined with parchment paper. Cover loosely with plastic wrap and let rise in a warm place for 30-45 minutes, or until puffy.
Preheat and Bake: Preheat your oven to 375°F (190°C). Brush the croissants with the beaten egg.
Bake: Bake for 18-20 minutes, or until golden brown and cooked through.
Cool Slightly: Let the croissants cool on the baking sheet for a few minutes before transferring them to a wire rack to cool completely. They are best enjoyed warm!