Preheat oven to 350 degrees F. Line a muffin pan with cupcake liners.
In a large bowl, beat the butter and sugar until light and creamy, about 2 minutes. Add the eggs and vanilla and beat again, scraping down the sides of the bowl as needed.
Add flour, baking powder, and salt and mix until combined.
Add milk, lemon juice, and lemon zest, mixing again until combined.
Scoop the batter into prepared cupcake liners, filling them about ⅔ full. I find a medium cookie scoop works best. Bake the cupcakes for 15-18 minutes until the tops bounce back when you touch them or a toothpick inserted in the center of the cupcakes comes out clean. Cool completely.
Make the frosting by beating the butter in a large bowl until creamy and light, about 2-3 minutes.
Add half of the powdered sugar, mixing on a low speed until combined. Add remaining powdered sugar and mix again.
Add heavy cream, lemon juice, and lemon zest, mixing until light and creamy. Adjust powdered sugar or lemon juice to make the frosting thicker or thinner, as needed.
If using lemon curd as a filling, cut a small cone out of the top of each cupcake like hulling a strawberry. Fill with 1-2 tablespoons of lemon curd, then replace the plug.
Pipe lemon frosting on top of each cupcake using a decorative tip, then serve.