Warm your milk to 108F, 42C if you use dry yeast. 108 F feels a bit warm to the finger but not at all too hot. For fresh yeast, lukewarm is good.
Dissolve your yeast into the milk. Add the sugar, cardamom, and 1-2 cups of flour. Beat it to make a batter. The warm milk and sugar activates the yeast.
Add your salt and egg and give it a stir.
Add in your flour gradually while mixing the batter at the same time. Once it has become a bit firmer, knead the dough with your hand.
After some minutes of kneading add in your softened butter. If it is hard, you can microwave it for some seconds.
Knead your dough additional 5 minutes. You can test if the dough is kneaded enough by taking a small piece of dough in between your fingers and stretching it. If it has enough elasticity, the dough pulls nicely.
Let your dough rest and rise. Cover your dough ball in the bowl with a cloth and let the dough rest in a warm place for 20-30 minutes. To get warm conditions, you can have the bowl in a water bath in the sink.
Divide your risen dough into equal halves. Roll each half with a rolling pin to a rectangle. 1-2 cm thick. (0,5-0,8 inch). (put some oil or flour on your surface)
Make your filling: mix the soft butter, sugar, and cinnamon together. Spread it evenly on both halves. Or you can first spread your soft butter on the dough and then sprinkle the sugar and cinnamon on top.
Roll the rectangle to a "snake" from the long side. Cut the roll into 10-14 triangles depending on the length. Make sure your seam is on the bottom or side.
Place your buns on a sheet with space between them. Press with your finger in the middle so the sides bulge out. (or use a chop stick) Cover with a kitchen towel and let them rise in warm conditions for 30 minutes or longer.
Preheat your oven to 200 C, 400F. Brush your buns with beaten egg and sprinkle some pearl sugar on top. Bake in the middle rack for 12-15 minutes until golden brown.