Place a wide large skillet on the stove over high, without any oil, on a. When skillet is hot add the ground meat. Using a wooden spoon, beak the meat as it browns. Brown while breaking and stirring constantly for 5-6 minutes, until the ground beef is well browned all over.
Add the onion, and olive oil to the skillet and continue sautéing for another 1-2 minutes.
Add the tomato paste and stir. Cook for 1-2 minutes. Scrape the burnt bits from the bottom of the pot with a wooden spoon as you stir.
Add the tomatoes and stir. Lower the heat and cook the beef for about 30 minutes, until it's tender and all its juices have been evaporated.
Leave the meat to cool. Season with sea salt and freshly ground pepper.
Make the white sauce
Heat the milk slowly in a saucepan with the fresh bay leaf.
Melt the butter over medium-low heat in a deep saucepan.
Pour the flour in batches and stir continuously on medium to low heat. Continue stirring for 3-4 minutes on low heat to cook the flour.
Pour in the milk, all together with it, along with the bay leaves. Increase the heat a little and continue the non-stop stirring to gradually dissolve the lumps that form. You can't avoid lumps, they just dissolve with continuous stirring.
Add the nutmeg. Simmer the sauce over low heat for about 15 minutes, stirring very often with a wooden spoon. The béchamel will thicken.
Add the cheese and immediately remove from the heat. Stir well.
Throw in the yolks and continue mixing, with the whisk. If you are not using immediately cover sauce with a cling film and press it lightly on the surface so that it does not form a crust.
Make the pasta
Boil the pasta in plenty of salted boiling water for 8 minutes, until tender. Drain pasta well and place it back in the pot. Add on the butter and toss.
With kitchen scissors, cut the pasta here and there into smaller pieces, so that they are not too long. Sprinkle ½ cup of grated kefalotiri cheese and toss pasta.
Assemble
Preheat oven to 180°C / 350°F.
Lay the pasta in a rectangular lasagna pan.
Add ½ cup of grated kefalotiri cheese in the meat sauce and stir.
Layer all the meat sauce on top of the pasta.
Finally, pour the béchamel on top and smooth the surface with a spatula.
Top pastitsio with the breadcrumbs and grated gruyere cheese.
Bake the pastitsio for about 60 minutes, until it forms a smooth and golden crust on top.
Let it cool for 15 minutes at least and serve.
Notes
Keep more milk and flour around than you might actually need. Just in case an adjustment in the thickness of the sauce is needed.
I always make more white sauce than I need. It is better to have extra than less, trust me on this. Refrigerate leftover sauce for up to three days. It must be covered with a transparent film right on the surface of the sauce, so that it does not form a crust. Use it over steak with lots of black pepper, fried potatoes, potato fritters or make macaroni and cheese.
Allow pastitsio to sit for 30 min before serving. It will be easier to cut and serve.
If you're a perfectionist do this: Pass the béchamel through a fine sieve, pressing it with a wooden spoon so that the tiniest clumps of flour don't remain.
Refrigerate already cooked pastitsio for up to three days.
Pastitsio freezes and reheats beautifully. For uncooked pastitsio: Assemble as directed and wrap the baking pan tightly with heavy-duty foil. Make sure to label and date the foil. Consume within 3 months. For baked pastitsio: Let the food cool completely, wrap the pan tightly with heavy-duty foil, label and date it and freeze for up to 3 months.