Preheat oven to 350 F. Butter and flour a 9-inch springform pan.
For the streusel:
In a food processor or using a pastry blender, combine sugar, flour, cinnamon, baking powder, and salt and mix to combine. Add butter and cut into mixture until the butter is in small pieces. If you pinch a small amount together it should clump together. Set aside.
For the cream cheese topping:
In a small bowl combine the cream cheese and sugar and whip, using a hand mixer or stand mixer, until soft and combined. Add the egg and beat until combined. Stir in the apricots, and set aside.
For the cake batter:
In a medium mixing bowl, sift together flour, baking powder, cinnamon, cardamom, and salt. In a large mixing bowl with a stand or hand mixer, cream butter and sugar together until light and fluffy, about 3 minutes. Add egg and beat until combined.
Combine milk and vanilla together in a measuring cup. Add flour mixture and milk mixture to mixer in alternating additions, starting and ending with the flour mixture, mixing until just combined. Be careful not to over mix the batter.
Pour batter into prepared pan. Pour cream cheese mixture over the cake batter and spread evenly over the cake batter. Sprinkle streusel mixture evenly over the top. Bake in preheated oven 35 to 40 minutes or until a toothpick inserted into the center comes out clean. Remove from oven and allow cake to cook on wire rack before removing spring form side and serving. Serves 6 to 8.