fixed rotation around object

What Im trying to do is this, I have a spotlight that rotates around the Player according to where the mouse is. The top down rotation works with my code I have below, and mimics the Top down Picture example I provided. However here’s my problem, The code I have that works only gives me the bottom left Side view heights of the Player and Sportlight, so their equal. If i try to move them up or down and face the light down or up like I have in the bottom right 2 side view pictures, it wont rotate around correctly. Im really puzzled on what I should do to fix this. Keep in mind Im trying to have the light direction always face away from the player. Thanks!!

public void lightMouseMovement()
    {
        float distToLight;
        float distToLookAt;
        Plane playerPlane;
       float rayDist = 0f;
 
 
       //Distance from Player to Light Object
        distToLight = (player.transform.position - this.transform.position).magnitude;
        //Distance from Player to Light Look At Object
        distToLookAt = (player.transform.position - lookAtObject.transform.position).magnitude;
        playerPlane = new Plane(Vector3.up, player.transform.position);
 
       //Creates ray from Screen to Point
       Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
 
       //Sets rayDist to distance from Camera to movementPlane OR cancels out(parallel or opposite direction)
 
 
        if (playerPlane.Raycast(ray, out rayDist)) 
       {
         //Get Collision Point in world space
         Vector3 point = ray.GetPoint(rayDist);
         //Move to new Rotational Posistion
            this.transform.position = player.transform.position + (point - player.transform.position).normalized * distToLight;
 
       }
        if (playerPlane.Raycast(ray, out rayDist))
        {
            //Get Collision Point in world space
            Vector3 point = ray.GetPoint(rayDist);
            //Move to new Rotational Posistion
            lookAtObject.transform.position = player.transform.position + (point - player.transform.position).normalized * distToLookAt;
 
 
        }
        //Make Height Adjustment to new point
        this.transform.position = new Vector3(this.transform.position.x, this.transform.position.y + lightYAdj, this.transform.position.z);
        lookAtObject.transform.position = new Vector3(lookAtObject.transform.position.x, lookAtObject.transform.position.y + lookAtYAdj, lookAtObject.transform.position.z);
       //Turn Light to Look at Look At Object
       this.transform.LookAt (lookAtObject.transform.position);

if i get it correctly you move your spotlight around and then make it look at an object whose position you calculate, if you want it to constatly face away the player you simply set it to a point on the spotlight-player line something like this:

lookAtObject.position = (spotlight.position-player.position) + spotlight.position