In a large bowl, whisk together the flour, yeast, sugar, and salt.
In a separate bowl, whisk together the lukewarm milk, melted butter, lemon zest, and poppy seeds.
Add the wet ingredients to the dry ingredients and mix until a shaggy dough forms.
Turn the dough out onto a floured surface and knead for 5-7 minutes, until smooth and elastic.
Form dough into a rectangle, wrap in plastic wrap, and chill for at least 2 hours, or preferably overnight.
Place cold butter between parchment paper and pound into a flat rectangle.
Keep butter block refrigerated until ready to use.
Roll chilled dough into a rectangle twice the size of butter block.
Place butter block in the center of the dough.
Fold dough over butter like a letter, enclosing it completely. Pinch edges to seal.
Turn dough 90 degrees. Roll into a long rectangle.
Fold dough into thirds, like a business letter (first turn).
Wrap dough in plastic wrap and chill for at least 30 minutes.
Repeat rolling, folding, and chilling process three more times (total four turns).
After fourth turn, wrap dough and chill for at least 2 hours, or preferably overnight.
Cream together softened butter, sugar, lemon zest, poppy seeds, and salt for filling.
Roll chilled dough into a large rectangle.
Spread lemon poppyseed filling evenly over half of the dough.
Fold the other half of the dough over the filling.
Trim edges of dough to create a clean rectangle.
Cut dough into triangles.
Roll up triangles from base to tip to shape croissants.
Place shaped croissants on a baking sheet lined with parchment paper.
Proof croissants at room temperature for 1.5-2 hours, or until puffy.
Preheat oven to 375°F (190°C).
Whisk together egg and milk (or water) for egg wash.
Brush tops of croissants with egg wash.
Bake for 18-22 minutes, or until golden brown and cooked through.
Let croissants cool slightly before transferring to a wire rack.