Having trouble implementing a slide function to character.

So I am after several previous attempts trying to complete this specific tutorial about making a 2d platformer. The problem is when every I get to the video about making the character use a slide animation it doesn’t work. I done it like four times and it never works for me but always for the guy who made the tutorial. I can reviewed the video over and over, but it looks like my code is the exact same as his.

Here is my script

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

public class Player_Script : MonoBehaviour
{
    private Rigidbody2D SMRigidbody;

    private Animator SMAnimator;

    [SerializeField]
    private float movementSpeed;

    private bool facingRight;
    private bool attack;
    private bool slide;

    // Start is called before the first frame update
    void Start()
    {
        facingRight = true;
        SMRigidbody = GetComponent<Rigidbody2D>();
        SMAnimator = GetComponent<Animator>();
    }

    // Update is called once per frame
    void Update()
    {
        HandleInput();
    }
       
        void FixedUpdate()
    {
        float horizontal = Input.GetAxis("Horizontal");

        HandleMovement(horizontal);

        HandleAttacks();

        ResetValues();

        Flip(horizontal);
    }

    private void HandleMovement(float horizontal)
    {
       
        if (!this.SMAnimator.GetCurrentAnimatorStateInfo(0).IsTag("Attack"))
        {
            SMRigidbody.velocity = new Vector2(horizontal * movementSpeed, SMRigidbody.velocity.y);
        }
       

        SMAnimator.SetFloat("speed", Mathf.Abs(horizontal));

        if (slide && !this.SMAnimator.GetCurrentAnimatorStateInfo(0).IsName("SHM_Slide"))
        {
            SMAnimator.SetBool("slide", true);
        }
        else if (!this.SMAnimator.GetCurrentAnimatorStateInfo(0).IsName("SHM_Slide"))
        {
            SMAnimator.SetBool("slide", false);
        }


    }

    private void HandleAttacks()
    {
if (attack && !this.SMAnimator.GetCurrentAnimatorStateInfo(0).IsTag("Attack"))
        {
            SMAnimator.SetTrigger("attack");
            SMRigidbody.velocity = Vector2.zero;
        }
    }

    private void HandleInput()
    {
        if (Input.GetKeyDown(KeyCode.LeftShift))
        {
            attack = true;
        }

        if (Input.GetKeyDown(KeyCode.LeftControl))
        {
            slide = true;
        }
    }

    private void Flip(float horizontal)
    {
        if (horizontal > 0 && !facingRight || horizontal < 0 && facingRight)
        {
            facingRight = !facingRight;
            Vector3 theScale = transform.localScale;
            theScale.x *= -1;
            transform.localScale = theScale;
        }
    }
    private void ResetValues()
    {
        attack = false;
        slide = false;
       
    }
}

What it is supposed to do is when the left control key is pressed, it makes the bool slide true, which in turn does the same to the animator parameter bool slide, those the animator transitions to the sliding animation. Instead it does nothing. It seems with the private bool never becomes true or the animator bool doesn’t. I have racked my brain but can’t see what I did wrong.
You will find the relevant parts of the code in HandleInput, HandleMovement sections of the code.
Thanks in advance.

I really need help with this, I have tackled it multiple times and never solved it. It’s driving me crazy.