Hi @bb023,
I largely agree with what @Dark-Mithril has described.
I think this functionality makes sense to remain in the Door Actor, you risk having a huge monolithic Player Controller otherwise.
I also agree that the reference you grab on begin play is probably no longer valid. What I would instead recommend is when you have an overlap, grab the Other Actor and check its class. If the class is of your Player Character class then you know the player character has overlapped, and you don’t need to hold a reference to the player at all.
You could take this a step further and add some kind of interface to the player character, e.g. DoorOpenerInterface, and check of the Other Actor implements the interface on overlap. This has some advantages where you may want multiple types of objects to be able to open doors, and they may have different functionality they want to trigger when they try open the door, e.g. an open door animation.
I hope this was helpful.
Thanks,
Hayden