In a medium bowl, whisk flour, baking powder, baking soda and salt. Set aside.
In a large bowl beat butter, sugar and cream of coconut until fluffy. Then, beat in eggs and vanilla until smooth.
Add ⅓ of the flour mixture and beat until well blended. Then add ½ amount of buttermilk and mix again. Repeat process ending with ⅓ of the flour mixture. Make sure to scrape the sides or the bowl with a spatula to get rid of any dry lumps.
Line a cupcake pan with liners. Fill them about ⅔ - ¾ of the way with the batter. Bake at 350ºF (180ºC) for about 20-25 minutes or until a knife inserted in the center comes out clean. Cool completely before frosting.
To make buttercream, beat butter and cream cheese until smooth, about 2-3 minutes at medium speed.
Add pineapple juice, cream of coconut and rum (optional). Beat again for another 2-3 minutes.
Add ½ amount of powdered sugar. Start mixing at low speed and increase to medium, beat for 2-3 minutes. Then, add the rest of the powdered sugar and beat until well blended. ** Add more sugar if you want your buttercream to be firmer.
Fill a pastry bag with the tip of your choice with the butter cream and pipe it on top of each cupcake. Garnish with pineapple and cherries.