01 - Grease a 9 x 13 inch baking dish thoroughly with butter or cooking spray. Spread half of the bread cubes in an even layer across the bottom of the dish.
02 - Scatter the cream cheese cubes and half of the blueberries evenly over the bread layer. Top with the remaining bread cubes, then distribute the rest of the blueberries across the surface.
03 - In a large mixing bowl, whisk together the eggs, milk, heavy cream, granulated sugar, and vanilla extract until fully combined and smooth.
04 - Pour the custard mixture evenly over the layered bread and berries. Gently press down on the bread with a spatula to ensure all pieces absorb the liquid. Cover the dish with plastic wrap and refrigerate for at least 30 minutes, or preferably overnight for optimal flavor absorption.
05 - Preheat your oven to 350°F (175°C) about 15 minutes before baking.
06 - In a small bowl, combine the softened butter, brown sugar, flour, cinnamon, and salt. Use a fork to mash and mix the ingredients together until the mixture resembles coarse, crumbly breadcrumbs.
07 - Remove the casserole from the refrigerator. Sprinkle the streusel topping evenly over the entire surface. Bake uncovered for 40 to 45 minutes until the top is golden brown and the center is set (no longer jiggly when shaken gently).
08 - Let the casserole rest for 5 to 10 minutes before serving to allow it to set slightly. Dust with powdered sugar if desired. Serve warm with maple syrup, lemon curd, or whipped cream.