Algorithms : most lightweight circle in directed graph that goes through specific vertex
Just add a node k1 to your graph, that has exactly the same connections as k, with the same weights (you can keep only the edges going to k1 if you'd like), and query the shortest path from k to k1 in your (slightly) extended graph. Your cycle is exactly this path, only replacing back k1 with k at the end of the path.

Your algorithm would be slower and would not always give the right answer: even if v is the closest node to k, maybe it is not in the best cycle (you could for instance have k->v cost 1, v->k cost 100, and k->u and u->k both cost 2 or some u).