Preheat oven to 400 degrees. Line a muffin tin with paper liners or spray with cooking spray. Set aside.
In a small bowl mix together the streusel ingredients (melted butter, both types of sugar, flour, cardamom and zest). Use a fork to work the ingredients together until it is all coated with butter and no more streaks of flour remain. The mixture should form crumbs not a paste. Place in the refrigerator until ready to use- it will bake better when chilled.
In a medium sized bowl mix together all dry ingredients, all-purpose flour, baking soda, baking powder, salt and cardamom. (reserve 1 tablespoon of flour to toss the cranberries.
In a large bowl cream the room temperature butter and both types of sugar together. Add the eggs one at a time mixing well in between. Then add the yogurt, vanilla extract, orange juice and orange zest.
Use a spatula to mix in the flour. Mix until just combined without over mixing which can result in dry muffins.
Toss the cranberries in the reserved tablespoon of flour. Using a spatula carefully fold the berries into the batter.
Evenly divide batter into muffin cups. Add extra cranberries (these do not need to be coated in flour) to the tops and gently press into the batter. The cups will be very full.
Sprinkle the streusel topping over the top of the batter and gently press down to help the streusel topping stick.
Bake in preheated oven for approximately 16-18 minutes, check with a toothpick for doneness around the 16 minute mark. All ovens will vary slightly.