Butter the bottom and sides of a 9 by 13 casserole dish. Set aside.
Cover the bottom of a large skillet with water and add ½ the head of chopped cabbage. Simmer on medium heat, turning often, until cabbage is getting tender and translucent. About 5 minutes. Place the cabbage in a colander and rinse with cold water to stop the cooking. Set aside. Repeat with remaining cabbage.
In the skillet melt butter on med-high heat adding the potato and onion when butter is melted.
Saute the potatoes and onions until onions are translucent, about 5 minutes. Stir them into the cabbage and pour the whole mixture into the bottom of the casserole pan.
Turn the skillet to medium-high heat and add the 2 cups of beef stock, salt, pepper, thyme, and rosemary. Bring to low boil.
Whisk the milk and flour together in a small bowl until smooth. Turn the heat to low and pour the milk/flour gently into the beef stock whisking constantly.
Gently heat, while stirring, for about 2 minutes allowing the mixture to thicken. Poor the stock mixture over the cabbage, onions, and potatoes in the casserole pan. Stir gently to mix.
Cover the cabbage, onions, potatoes, and broth mixture with puff pastry. Press the pastry down and in the pan sealing the edges and trimming as needed.
Brush the top of the pastry with the beaten egg.
Bake for 30 minutes or until golden brown in a pre-heated 400 degree oven.
Try adding diced ham or bacon with the onion and potatoes to give this dish the meat component. It would be outstanding with the addition!