My friend got his permit in 10 days in his city of residence and mine took 6 weeks in a different city. Why the difference?

There is no reason why there should be such a difference, except that each clerk’s office works at its own speed. You must apply in the city in which you reside, so you can’t “shop around” for the most efficient clerk’s office. Virginia law does require that the permit be issued within 45 days.