Whisk together flour, baking powder, baking soda, and salt in a medium bowl.
In a large bowl, beat softened butter until light and fluffy, about 2 minutes.
Gradually add granulated sugar and continue beating for 3-4 minutes until pale and fluffy.
Add eggs one at a time, beating well after each addition.
Mix in lemon zest, lemon juice, and vanilla extract until just combined.
Gradually add dry ingredients to wet ingredients, mixing on low speed just until combined.
Cover dough and refrigerate for at least 30 minutes.
Preheat oven to 350°F (175°C) and line baking sheets with parchment paper.
Scoop tablespoon-sized portions of dough, roll into balls, and place on prepared sheets 2 inches apart.
Flatten slightly with the bottom of a glass dipped in sugar.
Bake for 12-14 minutes until edges begin to turn golden while centers remain soft.
Cool on baking sheet for 5 minutes before transferring to a wire rack to cool completely.
For frosting, beat softened butter until creamy, then gradually add powdered sugar alternating with lemon juice.
Add lemon zest, vanilla extract, salt, and heavy cream as needed for desired consistency.
Once cookies are completely cool, frost generously and garnish if desired.