Preheat the oven to 375°F and line a 12-cup muffin pan with paper liners. Spray the liners with nonstick baking spray.
In a medium bowl, whisk together the flour, baking powder, spices, and salt.
Using a hand or stand mixer, beat the butter and sugar together until pale yellow and fluffy, about 2 minutes.
Add the eggs and vanilla and beat until smooth.
Alternate adding the flour and the buttermilk, starting and ending with flour (so, add flour first, then milk, then flour, and so on).
Scoop the batter into the prepared muffin pan and then top each muffin with the streusel. Bake for 25-30 minutes or until the muffins are golden around the edges and set in the middles.
Allow to cool on a wire rack and keep covered at room temperature in an airtight container.
For the Streusel:
Melt the butter in a small saucepan and then add in the other ingredients.
Cook over medium-low heat, stirring almost constantly, for about 5 minutes. It is ready when it is very crumbly and the butter has been completely absorbed. Sprinkle the streusel generously over the muffin batter once it is cool enough to handle.