Heat the oven to 340°F/170°C. Grease a 9-inch/22-centimeter round cake pan.
In the bowl of a stand mixer fitted with the whisk attachment, beat the butter, granulated sugar, demerara sugar, and vanilla until pale and fluffy, about 5 minutes. Add the eggs, one at a time, beating well after each addition.
Add the sour cream and milk and mix until combined. Add the flour and mix just until a smooth batter forms.
Transfer the batter to the prepared pan and smooth the top. Bake until golden brown and a toothpick inserted into the center comes out with a few moist crumbs attached, 55 to 65 minutes.
Cool in the pan for 15 minutes, then transfer to a wire rack to cool completely. Slice the cake horizontally into 2 even layers.
Meanwhile, make the filling: Beat the heavy cream and powdered sugar until soft peaks form. Add the pudding mix and beat until thick and spreadable.
Place one cake layer on a serving plate. Spread the filling evenly over the top, then cover with the second layer. Refrigerate for 30 minutes.
Make the buttercream: In the bowl of a stand mixer fitted with the paddle attachment, beat the butter, powdered sugar, and pudding mix until light and smooth.
Frost the top and sides of the cake with the buttercream, smoothing with an offset spatula. Decorate with white chocolate curls or sprinkles, if desired.
Refrigerate until ready to serve.