Minimum distance in an undirected weighted graph to cover k nodes using teleportations
You can do this in polynomial time with a greedy algorithm by always
traveling to the nearest un-visited terminal, and dropping a portal in
every terminal.
The crucial observations are these:

Since it's free to drop a portal and use one, you always put a portal in each of the terminals.
There is no point traveling anywhere but to a terminal.
When you move to a terminal, you always travel from the closest portal.

Let $G = (V, E, w)$ be the input graph and $T \subseteq V$ be your $k$
terminals, with $v_0 \in T$.
Start with $T' = \{v_0\}$.  While $|T'|&lt;k$, pick a terminal not in
$T'$ that is of shortest distance from $T'$ and add it to $T'$.  Sum up
the distances traveled in total.
Notice that you can preprocess your graph in $O(t^2 (n+m))$ time to get
a new (complete) graph $G' = (T, E', w')$ with only vertices from $T$ and
where the edge $t_1t_2$ has $w'(t_1, t_2) = \text{dist}_G(t_1, t_2)$.
Edit: This answer is updated.  The previous answer was based on Steiner Tree.