Preheat the oven to 180°C/350°F. Butter or spray a medium-sized casserole dish.
Cut the stale croissants into 4 pieces and leave them out overnight to dry further. If fresh, you can dry the slices in the oven at a low temperature for about 10 minutes.
Melt the butter in a non-stick pan over medium heat. Add the sliced leeks and chopped onions, and sauté for about 5 minutes until soft and translucent. Set aside.
In a large bowl, whisk together the eggs, Dijon mustard, cream, milk, and chives until well combined.
Add half to three-quarters of the dried croissant pieces to the egg mixture and toss to coat. Allow them to soak in the liquid for about a minute.
Spread half the leek and onion mixture on the bottom of the casserole dish, then top with half the soaked croissants. Tuck the ham slices into the croissants, ensuring they are evenly distributed across the casserole. Sprinkle over the remaining leek and onion mixture and half the grated Cheddar.
Soak the remaining croissants and place them on top of the casserole. Sprinkle the remaining grated Cheddar on top. Pour any leftover egg and cream mixture evenly over the casserole.
Spray a piece of foil with cooking spray and cover the casserole, sprayed side down. Bake for 30–35 minutes covered, then uncover and bake for a further 10–15 minutes until golden brown and puffed up.
Serve immediately.