Preheat oven to 350°F (175°C). Grease a 9x13-inch baking dish with butter and set aside.
Spread bread cubes on a baking sheet and toast in the oven for 8-10 minutes until dry but not browned. Transfer to the prepared baking dish.
In a large bowl, whisk together the milk, cream, eggs, granulated sugar, cardamom, rose water, vanilla extract, and salt until smooth and the sugar has dissolved.
Pour the custard mixture evenly over the bread cubes, pressing down gently with a spatula to ensure all pieces are submerged. Let sit for 20-25 minutes to absorb.
Drizzle the melted butter over the top, then sprinkle with sliced almonds and turbinado sugar for a caramelized finish.
Bake for 45-50 minutes until the top is golden brown and the center has just a slight jiggle when gently shaken. A knife inserted in the center should come out with a few moist crumbs.
Remove from oven and let cool for 10-15 minutes before serving. The pudding will set slightly as it cools but should still be soft and custardy in the center.