If using active dry or fresh yeast – heat up the milk, either in the microwave or in a saucepan, until it is “fingervarm” (finger warm), meaning it should feel warm to the touch but not hot. Add the yeast and stir to dissolve. Let it rest 5-10 minutes until it begins to froth and bubble a little bit. If using instant yeast – just add the yeast and milk in the next step.
Add the egg, egg yolk, sugar, vanilla extract, cardamom, and salt to a large bowl. Mix well. If you're using instant yeast, add the yeast and milk in this step.
If you’re using active dry yeast, once the yeast has bubbled up, add the milk and yeast mixture to the egg mixture and whisk to combine.
Slowly add the flour and the softened butter, stirring with a wooden spoon. Once the dough starts to come together, you can start kneading.
Knead until smooth and elastic, probably around 10-15 minutes. Add a bit of flour if the dough sticks to your hands or the surface. If you prefer not to get your hands messy, feel free to use a stand mixer for this step. The texture of your dough before its first rise should be soft and smooth, not sticky and not too dry.
Cover and let your dough rise for about 45 minutes, or until doubled in size.
Once the dough has risen, dump it out on a flat surface. Divide into 12 equal pieces. If you want very even-looking buns, weigh the total lump of dough, then divide this by 12 and weigh each piece to ensure that all buns weigh the same.
Shape the pieces into buns. How to: take a piece, pinch together into a ball shape, then place it seam-side down on an unfloured surface. Cup it in your hand with the top of the roll touching your palm. Move your cupped hand in quick, tight circles – this will cause the seam to come together and create tension on the surface of the dough.
Place the shaped buns on a baking sheet lined with parchment paper. Let them rise for about 45 minutes or until doubled in size. Meanwhile, preheat your oven to 350 F (175 C).
Once the buns have risen, egg wash the buns and bake for 12-14 minutes, or until golden brown and hollow sounding when you tap them. Let them cool completely.
While the buns are cooling, prepare your filling by mixing together the marzipan and softened butter to make a paste (it helps if your marzipan is on the softer side!).
Whip the heavy cream using a stand mixer, a handheld mixer, or a whisk, and add sugar and vanilla extract. Whip until it reaches stiff peaks.
To fill the semlor, cut off the top of the bun and remove some of the center.
Fill the center of the bun with about a tablespoon of marzipan filling.
Fill a piping bag with a star nozzle with the whipped cream mixture, then pipe whipped cream in a circle on the top. Add back the top of the bun, sprinkle with powdered sugar, and enjoy!