Preheat oven to 350°F (175°C). Grease and line two 9-inch round cake pans with parchment paper.
In a medium bowl, whisk together the cake flour, baking powder, and salt. Set aside.
In a large mixing bowl, beat the butter and sugar together on high speed until light and fluffy, about 3 minutes.
Add the eggs one at a time, beating well after each addition. Stir in the vanilla extract.
In a small bowl, combine the milk and sour cream.
Gradually add the dry ingredients to the butter mixture in three additions, alternating with the milk mixture, beginning and ending with the dry ingredients. Mix just until combined.
Gently fold in the strawberry puree and finely chopped fresh strawberries until evenly distributed in the batter.
Divide the batter evenly between the prepared cake pans and smooth the tops.
Bake for 25-30 minutes, or until a toothpick inserted in the center comes out clean.
Let the cakes cool in the pans for 10 minutes, then transfer to a wire rack to cool completely before frosting.
To make the frosting, beat the softened butter on high speed until smooth and creamy, about 2 minutes.
Gradually add the powdered sugar, one cup at a time, beating well after each addition.
Pour in the strawberry puree and vanilla extract and beat until fully combined.
If the frosting is too thick, add heavy cream one tablespoon at a time until the desired consistency is reached. If it’s too thin, add more powdered sugar.
Add a pinch of salt and beat the frosting on high for 2 minutes to make it fluffy.
Place one cake layer on a serving plate and spread a generous amount of frosting on top.
Place the second cake layer on top and frost the entire cake with the remaining icing.
Garnish with fresh strawberries if desired.
Slice and serve immediately or store in the refrigerator for up to 3 days.