01 - Generously grease a 9 x 13 inch baking dish with butter or cooking spray. Spread half of the bread cubes in an even layer across the bottom.
02 - Scatter the cream cheese cubes and half of the blueberries evenly over the bread layer. Arrange the remaining bread cubes on top, then distribute the remaining blueberries over the surface.
03 - In a large mixing bowl, whisk together the eggs, whole milk, heavy cream, granulated sugar, and vanilla extract until fully combined and smooth.
04 - Pour the custard mixture evenly over the entire casserole, ensuring all bread pieces are saturated. Gently press down with the back of a spoon to help absorption. Cover the dish with plastic wrap and refrigerate for at least 30 minutes, or preferably overnight for optimal texture and flavor.
05 - Preheat your oven to 350°F (180°C) while preparing the streusel topping.
06 - In a small bowl, combine the softened butter, light brown sugar, all-purpose flour, ground cinnamon, and salt. Mix with a fork or your fingers until the mixture resembles coarse, crumbly crumbs.
07 - Remove the casserole from the refrigerator. Sprinkle the streusel topping evenly over the entire surface. Bake uncovered for 40 to 45 minutes, or until the top is golden brown, the edges are bubbling, and the center is set.
08 - Allow the casserole to cool for 10 to 15 minutes before serving. Dust generously with powdered sugar if desired. Serve warm with maple syrup, lemon curd, or whipped cream.