C# Character Model won't turn to camera direction

This is my code, the character moves in the direction the camera is turned to but the actual model does not turn. Any suggestions? I’m new to coding and any help would be very helpful. Thank you

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

public class CameraControl : MonoBehaviour
{
    private const float Y_ANGLE_MIN = 0.0f;
    private const float Y_ANGLE_MAX = 50.0f;

    private float moveFB, moveLR;
    public float moveSpeed = 2f;

    public Transform lookAt;
    public Transform camTransform;
    public Transform centerPoint;
    public float mouseYPosition = 1f;
    public float rotationSpeed = 5f;

    private Camera cam;

    private float distance = 3.0f;
    private float currentX = 0.0f;
    private float currentY = 20.0f;
    private float sensivityX = 6.0f;
    private float sensivityY = 2.0f;

    float cameraDistanceMax = 6f;
    float cameraDistanceMin = 0.5f;
    float cameraDistance = 3f;
    float scrollSpeed = 0.5f;

    private float mouseX, mouseY;


    private void Start()
    {
        camTransform = transform;
        cam = Camera.main;
    }

    private void Update()
    {
        lookAt.localRotation = Quaternion.Euler(mouseY, mouseX, 0);

        if (Input.GetMouseButton(1))
            currentX += Input.GetAxis("Mouse X");
        if (Input.GetMouseButton(1))
            currentY += Input.GetAxis("Mouse Y");

        currentY = Mathf.Clamp(currentY, Y_ANGLE_MIN, Y_ANGLE_MAX);

        moveFB = Input.GetAxis("Vertical") * moveSpeed;
        moveLR = Input.GetAxis("Horizontal") * moveSpeed;

        Vector3 movement = new Vector3(moveLR, 0, moveFB);
        movement = Camera.main.transform.TransformDirection(movement);
        movement.y = 0.0f;
        //movement = lookAt.rotation * movement;
        lookAt.GetComponent<CharacterController>().Move(movement * Time.deltaTime);
        centerPoint.position = new Vector3(lookAt.position.x, lookAt.position.y + mouseYPosition, lookAt.position.z);

        lookAt.GetComponent<CharacterController>().Move(movement * Time.deltaTime);
        //lookAt.position = new Vector3(lookAt.position.x , lookAt.position.y + mouseYPosition, lookAt.position.z );

        if (Input.GetAxis ("Vertical") > 0 | Input.GetAxis ("Vertical") < 0)
        {
            Quaternion turnAngle = Quaternion.Euler(0, lookAt.eulerAngles.y, 0);

            lookAt.rotation = Quaternion.Slerp(lookAt.rotation, turnAngle, Time.deltaTime * rotationSpeed);
        }







        //zoom code
        cameraDistance += Input.GetAxis("Mouse ScrollWheel") * scrollSpeed;
        cameraDistance = Mathf.Clamp(cameraDistance, cameraDistanceMin, cameraDistanceMax);
        //zoom code

    }

    private void LateUpdate()
    {
        Vector3 dir = new Vector3(0, 0, -cameraDistance);
        Quaternion rotation = Quaternion.Euler(currentY, currentX, 0);
        camTransform.position = lookAt.position + rotation * dir;
        camTransform.LookAt(lookAt.position);
    }
}

I’m pretty sure the problem is in this section of code but I’m not sure.

        Vector3 movement = new Vector3(moveLR, 0, moveFB);
        movement = Camera.main.transform.TransformDirection(movement);
        movement.y = 0.0f;
        //movement = lookAt.rotation * movement;
        lookAt.GetComponent<CharacterController>().Move(movement * Time.deltaTime);
        centerPoint.position = new Vector3(lookAt.position.x, lookAt.position.y + mouseYPosition, lookAt.position.z);
  1. You’re using “bitwise or”. Did you mean to use a" logical or" (“”||" instead of “|”)?
  2. It looks like turnAngle rotation might always the same as the lookAt rotation, hence no rotation would occur.