Prepare your baking dish by generously buttering a 9×13 inch baking dish, making sure to cover all sides to prevent sticking.
Tear croissants into pieces approximately 1-inch in size and place them in the buttered dish. If using raisins or dried cranberries, scatter them among the croissant pieces.
Make the custard by whisking together milk, cream, sugar, eggs, egg yolks, vanilla extract, almond extract (if using), and salt in a large bowl until completely combined and sugar is dissolved.
Pour the custard mixture evenly over the croissant pieces, gently pressing down with a spatula to ensure all pieces are soaked. Let stand for at least 30 minutes (or refrigerate overnight for better absorption).
Preheat your oven to 350°F (175°C) while the croissants are soaking in the custard mixture.
Drizzle melted butter over the top of the soaked croissants, then sprinkle with sliced almonds and turbinado sugar if using for a delicious crunch.
Bake uncovered for 45-55 minutes until the pudding is puffed, set in the center, and the top is golden brown. A knife inserted into the center should come out mostly clean with just a few moist crumbs.
Allow to cool for 15-20 minutes before serving to let the pudding set up properly for the best texture and easier slicing.