Prepare your workspace and ingredients. Preheat oven to 350°F (175°C). Grease and line two 9-inch round cake pans with parchment paper. Allow butter, eggs, and buttermilk to reach room temperature.
Combine dry ingredients. In a medium bowl, whisk together flour, baking powder, and salt until well combined. Set aside.
Cream butter and sugar. In a large bowl, beat the softened butter and granulated sugar with an electric mixer on medium-high speed for 4-5 minutes until light and fluffy. The mixture should be noticeably paler in color.
Add eggs and flavorings. Add eggs one at a time, beating well after each addition. Mix in lemon zest, lemon juice, and vanilla extract until just combined.
Alternate wet and dry ingredients. Reduce mixer speed to low. Add the flour mixture in three parts, alternating with buttermilk in two parts (flour-buttermilk-flour-buttermilk-flour). Mix until just combined after each addition, being careful not to overmix.
Prepare the blueberries. In a small bowl, toss 2 cups of blueberries with 1 tablespoon of flour until lightly coated (this prevents them from sinking during baking).
Fold in the blueberries. Gently fold the flour-coated blueberries into the batter with a rubber spatula, taking care not to crush them.
Divide and bake. Divide the batter evenly between the prepared cake pans, smoothing the tops with a spatula. Bake in the preheated oven for 28-32 minutes, or until a toothpick inserted in the center comes out with a few moist crumbs.
Cool properly. Allow cakes to cool in pans for 10 minutes before inverting onto wire racks to cool completely. Remove parchment paper carefully.
Prepare the frosting. Beat cream cheese and butter together until smooth and creamy, about 2 minutes. Add powdered sugar one cup at a time, mixing on low speed. Add vanilla, lemon juice, and zest, then increase speed to medium-high and beat until light and fluffy, about 2-3 minutes.
Assemble the cake. Place one cake layer on a serving plate. Spread about 1 cup of frosting evenly over the top. Place the second layer on top, then frost the top and sides of the cake with the remaining frosting.
Garnish beautifully. Decorate the top with fresh blueberries, lemon slices or zest, and mint leaves if desired. Refrigerate for at least 1 hour before serving to allow flavors to meld and frosting to set.