Prep the bowl. Grease a large bowl with nonstick cooking spray and set aside.
Make the dough. In the bowl of a stand mixer, combine the melted butter, warm water, flour, granulated sugar, cinnamon, cardamom, and yeast, then knead with the dough hook for 5 minutes.
First rise. Transfer to the greased bowl, cover with plastic wrap, and let rise in a warm place until roughly doubled, about 50 minutes.
Preheat the oven. Preheat the oven to 375°F and line a baking sheet with parchment paper.
Shape the buns. Turn the dough out onto a lightly floured surface and divide into 8 equal pieces, about 130–135 grams each. Form each into a ball by tucking the excess underneath to create a taut top, then place on the prepared baking sheet, evenly spaced apart.
Let the buns rest. Let the shaped buns rest about 20 minutes before baking; this helps prevent cracking along the bottom edge.
Bake the buns. Bake 12 minutes, until golden brown, then let cool on the baking sheet 10 minutes.
Make the glaze. In a small shallow bowl, stir together the confectioners' sugar and heavy cream; set aside.
Make the filling. In a separate medium bowl, whisk together the vanilla, instant pudding powder, and milk. Chill 5 minutes, then spoon into a piping bag fitted with any size tip, and pour the coconut into another shallow bowl.
Assemble the buns. Cut a 1-inch hole out of the top of each bun and pull out or push down the bread inside. Invert each bun and dip the whole top into the glaze, immediately roll in coconut, then pipe pudding into the hole to fill the bun, ending with a small swirl on top.