Preheat the oven to 350°F. Line 2 cookie sheets with parchment paper.
To make the dough: In the bowl of a stand mixer fitted with the paddle attachment, add the butter, powdered sugar, and vanilla extract. Mix on low until combined and you don’t see powdered sugar anymore, there will still be a few chunks of butter but that is okay because it’s very soft.
Add the flour into the butter mixture and mix on low until combined and smooth. The dough should feel like play dough in your hands.
Using your hands, form the dough into 30 balls and place them on the prepared cookie sheets. Flatten each one slightly so they are about 1 ¾-inch in diameter.
Bake for 15 to 17 minutes until golden brown. Allow to cool completely on the cookie sheets.
To make the filling: In the bowl of a stand mixer fitted with the paddle attachment, add the butter, powdered sugar, peanut butter, and vanilla extract. Mix on low and add in the milk as needed. Continue to mix and speed mixer up to high and mix until light and fluffy.
Transfer the frosting to a piping bag and pipe a small dollop on top of each cookie.
Turn the cookies over and press into the parchment paper to flatten the frosting so it’s the same diameter as the cookie.
Transfer the tray to the freezer to let the frosting set, about 20 to 30 minutes.
Melt the chocolate using a double boiler or in the microwave doing 30 second intervals, stirring brewery each one to prevent burning.
Remove the cookies from the freezer and dip them into the chocolate to coat them completely. I like to use a fork as a spoon, so excess chocolate can drip off easily. Place the cookies back on the parchment paper lined baking sheets.
Transfer the cookies to the freezer to set. You can drizzle extra chocolate on top if you like.
Store in an airtight container in the fridge for up to 7 days.