Preheat your oven to 350°F (175°C). Grease a 9x13-inch baking dish with butter or cooking spray and set aside.
Place the cubed bread in a large mixing bowl. If the bread is not stale, lightly toast it in the oven for 5-7 minutes to dry it out.
In another large bowl, whisk together the pumpkin puree, granulated sugar, brown sugar, eggs, milk, heavy cream, vanilla extract, cinnamon, nutmeg, cloves, ginger, and salt until smooth and well combined.
Pour the pumpkin custard mixture over the bread cubes. Gently fold to ensure all the bread pieces are coated. Let the mixture sit for 10-15 minutes to allow the bread to absorb the liquid.
If using raisins or pecans, fold them into the bread mixture at this point.
Transfer the soaked bread mixture into the greased baking dish, spreading it out evenly.
Bake in the preheated oven for 45-50 minutes, or until the top is golden brown and the pudding is set in the middle (a knife inserted into the center should come out clean).
Remove the dish from the oven and let the bread pudding cool for 10-15 minutes before serving.
Serve warm, optionally topped with whipped cream, a drizzle of caramel sauce, or a sprinkle of powdered sugar.
Notes
For best results, use stale bread to absorb the custard mixture. You can substitute pecans with walnuts or omit the nuts entirely.