My script is working just one time

I want to transport my “player” when I press E in a collider.
Is everything fine.
But I can only do it one time. If I try to do it again it doesnt works.
The only part that is working is the UI that says: Press E to enter.

This is the script.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TPDoor : MonoBehaviour
{
    public GameObject UIText;
    public GameObject TPObject;
    public Transform PositionToTP;

    private void Start()
    {
        UIText.SetActive(false);
    }

    void OnTriggerStay(Collider other)
    {
        UIText.SetActive(true);
        if (other.tag == "Player" && Input.GetKeyDown(KeyCode.E))
        {

            TPObject.transform.position = PositionToTP.transform.position;

        }
    }

    private void OnTriggerExit(Collider other)
    {
        UIText.SetActive(false);
    }

   
    

}

Hello…

I dont understand, in this part:

void OnTriggerStay(Collider other)
 {
     UIText.SetActive(true);
     if (other.tag == "Player" && Input.GetKeyDown(KeyCode.E))
     {

         TPObject.transform.position = PositionToTP.transform.position;

     }
 }

If checking if the other is the payer, i understand the script is the “teleporter” script.

Then why you change the position of the teleporter? And not the position of the player?

  TPObject.transform.position = PositionToTP.transform.position;