ATC waits until I’m just 30 miles away from dest to descend

Yes, I get to 30 miles and still at 29000. Also when it does work and I am on final approach at 3000, it tells me to go up to 7000.