My shotgun is only firing in one direction

So I’m trying to make a shotgun for my 3D FPS game that can shoot custom projectiles but for some reason the bullets only move in one direction no matter where the player is looking. I have know idea why this is and how to fix it.

Video of what happens:

Here is the script for my shotgun:

using UnityEngine;

public class Shotgun : MonoBehaviour
{
    public Transform muzzleTransform;
    public GameObject bulletPrefab;
    public int amountOfProjectiles = 8;
    public float spreadRadius = 1.0f;
    public float shootForce = 10f;

    private AudioSource gunAudio;

    void Start()
    {
        gunAudio = GetComponent<AudioSource>();
    }

    void Update()
    {
        if (Input.GetButtonDown("Fire1"))
        {
            FireShotgun();
        }
    }

    void FireShotgun()
    {
        for (int i = 0; i < amountOfProjectiles; i++)
        {
            // Create a cone of rays
            Vector3 rayDirection = CalculateSpreadDirection();

            // Call Shoot with the specific direction
            Shoot(rayDirection);
        }
    }

    void Shoot(Vector3 direction)
    {
        Ray ray = new Ray(muzzleTransform.position, direction);

        if (Physics.Raycast(ray, out RaycastHit hit))
        {
            // Instantiate bullet prefab at the shotgun tip
            GameObject bullet = Instantiate(bulletPrefab, muzzleTransform.position, Quaternion.identity);

            // Apply force to the bullet based on the cone direction
            Rigidbody bulletRigidbody = bullet.GetComponent<Rigidbody>();
            bulletRigidbody.AddForce(direction * shootForce, ForceMode.Impulse);

            gunAudio.PlayOneShot(gunAudio.clip);
        }
        else
        {
            // If the ray didn't hit anything, instantiate bullet prefab at the end of the ray
            GameObject bullet = Instantiate(bulletPrefab, ray.GetPoint(10f), Quaternion.identity);
            gunAudio.PlayOneShot(gunAudio.clip);
        }
    }

    Vector3 CalculateSpreadDirection()
    {
        // Get a random point inside a circle of radius spreadRadius
        float randomAngle = Random.Range(0f, 360f);
        float randomRadius = Random.Range(0f, spreadRadius);
        Vector3 randomPoint = new Vector3(Mathf.Cos(randomAngle), Mathf.Sin(randomAngle), 0f) * randomRadius;

        // Transform the random point to world space
        Vector3 coneDirection = muzzleTransform.TransformDirection(randomPoint.normalized);

        return coneDirection;
    }
}

try going t transform.TransformDirection(Vector.forward )* float and try another forcemode …