Preheat the oven to 350°F (175°C) and line a muffin tin with cupcake liners.
In a large mixing bowl, cream together the softened butter and granulated sugar until light and fluffy. Add the eggs one at a time, mixing well after each addition. Stir in the vanilla extract.
In a separate bowl, whisk together the flour, baking powder, baking soda, salt, and shredded coconut. Gradually add the dry ingredients to the wet mixture, alternating with the buttermilk. Mix until just combined.
Divide the batter evenly among the cupcake liners, filling each about two-thirds full. Bake for 18-20 minutes, or until a toothpick inserted into the center comes out clean. Allow the cupcakes to cool completely in the pan before transferring them to a wire rack.
For the coconut cream filling, beat the heavy cream in a mixing bowl until soft peaks form. Gently fold in the sweetened condensed milk, vanilla extract, and shredded coconut until well combined.
Once the cupcakes are cool, use a small knife or cupcake corer to remove a small portion from the center of each cupcake. Fill each hole with the coconut cream filling.
For the topping, whip the heavy cream with powdered sugar and vanilla extract until stiff peaks form. Pipe or spread the whipped cream on top of each filled cupcake and sprinkle with toasted coconut flakes.
Serve immediately or refrigerate until ready to serve.