In the bowl of a stand mixer fitted with a paddle, combine milk, sugar, 3 tsp. cardamom, and yeast; stir together and let sit until foamy, 10 minutes. Add eggs; mix to combine. Add flour and salt; mix until a dough forms. Replace paddle with hook attachment; knead dough on medium speed for 2 minutes. While kneading, slowly add butter in batches, mixing until incorporated before adding next batch, 3-4 minutes; continue kneading for 4 minutes more after last of butter is added. Transfer dough to a greased bowl and cover with plastic wrap; let sit until doubled in size, about 1 hour. Punch down dough; cover again with plastic wrap and let sit until fully risen, 30 minutes.
Heat oven to 375°. Transfer dough to a work surface and divide into 2 equal pieces. Set 1 piece aside and divide other piece into 3 equal portions. Roll each portion between your palms and work surface to create a 16-inch rope. Braid ropes together to form a loaf, following the instructions below. Transfer loaf to a parchment paper–lined baking sheet. Repeat with second dough piece. Cover loaves with plastic wrap and let sit until slightly puffed up, about 20 minutes.
Whisk together remaining cardamom, cream, and egg yolk in a small bowl; brush over loaves. Sprinkle with sugar and almonds (if using); bake, one loaf at a time, until golden brown, 20–25 minutes. Transfer to a rack; let cool 10 minutes before serving.