Preheat the oven to 350 degrees and line a muffin tin with liners. In a medium bowl whisk together the flour, sugar, baking soda, baking powder, salt, and cardamon.
In another medium bowl, place all the ingredients for the streusel topping. Using a pastry cutter or two butter knives, cut in the butter until crumbly. In a large bowl, whisk together the oil, buttermilk, vanilla extract, and yogurt until smooth. Add the eggs one at a time and whisk until combined.
Add the dry ingredients and mix just until combined and no flour pockets remain.
Gently fold in the blueberries until evenly combined.
Using two spoons, scoop and scrape the batter in the liners, filling all the way to the top. Sprinkle struesel over the muffins until top is covered.
Bake for 20-25 minutes or until a toothpick inserted in the middle comes out clean.
Allow the muffins to cool in the pan for 5 minutes, then transfer to a wire rack to continue cooling. Store the muffins in a cover container on the counter for a few days or in the refrigerator for 1 week.