Prep the pan and oven: Heat the oven to 350°F (175°C). Lightly grease a 9x13-inch baking pan and line with parchment for easy removal.
Mix dry ingredients: In a large bowl, whisk flour, sugar, baking powder, and salt until well combined.
Combine wet ingredients: In a separate bowl, whisk buttermilk, eggs, melted butter, and vanilla until smooth.
Make the batter: Pour the wet mixture into the dry.
Stir with a spatula until just combined. A few small lumps are fine. Do not overmix.
Spread in the pan: Transfer the batter to the prepared pan and smooth the top.
Make the cinnamon swirl: In a medium bowl, mix the soft butter, brown sugar, cinnamon, and salt until it forms a thick, spreadable paste.
Add the swirl: Dollop spoonfuls of the cinnamon mixture all over the batter.
Use a butter knife to gently swirl it through the cake, reaching different depths so the gooey pockets bake throughout.
Bake: Bake for 28–35 minutes, until the center is set and a toothpick inserted in the cake (not a cinnamon pocket) comes out with a few moist crumbs. The edges should be lightly golden.
Make the glaze: While the cake bakes, whisk powdered sugar, milk or cream, vanilla, and a pinch of salt until smooth. For a cream cheese glaze, beat the cream cheese first, then whisk in the remaining ingredients.
Glaze while warm: Let the cake cool for 10 minutes, then pour the glaze over the warm cake.
It will sink into the swirls and cracks for that classic cinnamon-roll finish.
Rest and serve: Let the cake set for another 10–15 minutes. Slice into squares and serve warm.