Why my PreviousBounceSide doesent change?

Hi everyone. Right now im making a simple pong game. I almost finished it,but have a small issue.
I have a method which determines side of bounceness. Like if it bounced from left or right side. But it literally doesent work! And i dont understand why(
Below ill attach a video where i showed the issue.

Code :

using System.Collections;
using Random = UnityEngine.Random;
using System.Collections.Generic;
using UnityEngine;
using System;
using Unity.VisualScripting;
using System.Linq;

public class BallController : MonoBehaviour
{
    public float BaseSpeed;
    public float Acceleration;
    public float SpawnMovementDelay;
    public Rigidbody2D _ballInstance;
    public enum Side { Left, Right };
    public Side PreviousBounceSide;

    [SerializeField]private Rigidbody2D _ball;
    [SerializeField] private int duration;
    private bool _isSpawned;
    private BallMovementHandler movementHandler;
    

    private void Start()
    {
        movementHandler = GetComponent<BallMovementHandler>();
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            if(!_isSpawned)
            {
                Instantiation();
                StartCoroutine(Delay());
                StartCoroutine(movementHandler.AccelerateBallOverTime(duration));
                _isSpawned = true;
            }
        }
    }
    public void Instantiation()
    {
        _ball.velocity = Vector2.zero;
        _ballInstance = Instantiate(_ball);
    }
    private void Launch()
    {
        //exluding angles 45 through 135
        float ExludeAngle = 45;
        float ExludeAngleThrough = 135;

        float minAngle = 0; float maxAngle = 180;
        
        float angle = Random.Range(minAngle,maxAngle);
       
        
        while(angle >= ExludeAngle && angle <= ExludeAngleThrough)
        {
            angle = Random.Range(minAngle, maxAngle);
        }
        
        
        float radians = angle * Mathf.Deg2Rad;
  

        float xSpeed = Mathf.Cos(radians) * BaseSpeed;
        float ySpeed = Mathf.Sin(radians) * BaseSpeed;
        _ballInstance.velocity = new Vector2(xSpeed,ySpeed);

    }
    private IEnumerator Delay()
    {
        yield return new WaitForSeconds(SpawnMovementDelay);
        Launch();
    }

    public void SetPreviousBounceSide(Side side)
    {
        PreviousBounceSide = side;
        movementHandler.PreviousBounceSide = side;
    }

    public void BallBounceHandler(Side side)
    {
        SetPreviousBounceSide(side);
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BallMovementHandler : MonoBehaviour
{
    private BallController ballController;
    public  BallController.Side PreviousBounceSide;

    private void Start()
    {
        ballController = GetComponent<BallController>();
    }

    public IEnumerator AccelerateBallOverTime(float duration)
    {
        float startTime = Time.time;
        float elapsedTime = 0f;

        while (elapsedTime < duration)
        {
            float t = elapsedTime / duration;
            float currentSpeed = Mathf.Lerp(ballController.BaseSpeed, ballController.Acceleration, t);

            ballController._ballInstance.velocity = ballController._ballInstance.velocity.normalized * currentSpeed;

            elapsedTime = Time.time - startTime;
            yield return null;
        }
    }
    public void BlockBall()
    {
        ballController._ballInstance.velocity = Vector2.zero;
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BallBounceHandler : MonoBehaviour
{
    private BallController ballController;

    private void Start()
    {
        ballController = FindObjectOfType<BallController>();
    }
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.CompareTag("PlayerOrWall"))
        {
            BallController.Side side = (collision.contacts[0].normal.x > 0) ? BallController.Side.Right : BallController.Side.Left;
            ballController.BallBounceHandler(side);
        }
    }
}