Shotgun bullet effects using overlapsphere

Hi all, I am currently trying to implement a shotgun into my game. Originally I was using multiple collision spheres shot from the gun to detect what is hit but found this technique didn’t feel it gave the right spread of damage.

I read about using an overlapsphere to get the amount of objects hit by the shotgun but this is not giving any real results, not sure where im going wrong with this so any help would be very much appreciated.

Thanks

void ShotGunUpdate()
        {
            RaycastHit Hit;

            var colliders = Physics.OverlapSphere(new Vector3(Aim.transform.position.x,Aim.transform.position.y-2,Aim.transform.position.z + 9), ShotgunRadius);
            var count = Physics.OverlapSphereNonAlloc(new Vector3(Aim.transform.position.x, Aim.transform.position.y - 2, Aim.transform.position.z + 9), ShotgunRadius, Util.Colliders);

            //Vector3 explosionPos = transform.position;

            for (int i = 0; i < count; i++)
            {
                var collider = Util.Colliders[i];

                if (!collider.isTrigger)
                {
                    var part = collider.GetComponent<BodyPartHealth>();
                    if (part == null)
                    {
                        var closest = collider.transform.position;

                        if (collider.GetType() == typeof(MeshCollider))
                            if (((MeshCollider)collider).convex)
                                closest = collider.ClosestPoint(transform.position);

                        var vector = transform.position - closest;
                        var distance = vector.magnitude;

                            if (distance < ShotgunRadius)
                            {
                            if (Physics.Raycast(collider.transform.position,transform.TransformDirection(Vector3.forward), out Hit, Mathf.Infinity))
                            {
                                Vector3 normal;

                                if (distance > float.Epsilon)
                                    normal = vector / distance;
                                else
                                    normal = (closest - collider.transform.position).normalized;
                                if (collider.tag == "Player")
                                {
                                }
                                else
                                {
                                    Apply(collider.gameObject, closest, normal, (1 - distance / ShotgunRadius));
                                }
                            }
                        }
                    }
                }
            }
            Destroy(gameObject);
        }

I haven’t played with OverlapSphere, but it seems like for a shotgun blast, as long as the pellet count is reasonable (like OO buckshot, maybe 12 pellets max), why not send out some number of raycasts and see what they hit? That way if you hit some of your pellets on a narrow pole or the edge of a wall, some of them can still fly by and hit something further away.