Preheat oven to 350°F (175°C). Butter a 9" × 9" baking dish and set aside.
Cut the day‑old bread into 1-inch cubes and spread evenly in the bottom of the prepared dish. Peel, core and slice pears; toss with 2–3 tablespoons granulated sugar if desired, then layer over the bread cubes.
In a large bowl, whisk together eggs, milk (or milk/cream blend), brown sugar, ground cardamom, cinnamon (if using), salt, and vanilla extract until smooth.
Pour the custard evenly over the bread and pears, pressing gently to help bread soak up the liquid.
Cover and refrigerate for 30 minutes to allow custard to absorb fully (optional but recommended).
Bake uncovered for 40–50 minutes, until top is golden and a knife inserted into center comes out mostly clean. If top browns too quickly, tent with foil midway through baking.
While pudding bakes, prepare the orange caramel sauce: melt granulated sugar in a saucepan over medium heat until amber. Remove from heat, stir in butter. Carefully whisk in warmed heavy cream, then orange juice, zest and a pinch of salt until smooth.
Once pudding is done, let rest 5–10 minutes. Serve warm with warm orange caramel sauce drizzled on top; add optional toppings like toasted nuts, powdered sugar, or a scoop of vanilla ice cream.