Shooting RPC sometimes not called on other clients

Options
Hi, I am currently making an FPS game and I have run into an issue.
Currently, my player is able to shoot raycasts and stuff. However, whenever I move at high speeds and shoot another player, the shots do get registered on the client to fired the shot, but often not on the other clients.
Here is my RPC_Shoot code:
[PunRPC]
        private void RPC_Shoot()
        {
            switch (playerSetup.currentWeapon.name)
            {
                case "Pistol":
                    pistolSFX.Play();
                    break;
                case "M69 Assault Rifle":
                    rifleSFX.Play();
                    break;
            }

            RaycastHit _hitInfo;

            if (currentWeaponObj != null)
            {
                Referencer weaponRef = currentWeaponObj.GetComponent<Referencer>();
                weaponRef.particleObj.Play();
            } else if (avatarWeaponObj != null)
            {
                Referencer avatarWeaponRef = avatarWeaponObj.GetComponent<Referencer>();
                avatarWeaponRef.particleObj.Play();
            }

            if (Physics.Raycast(rayOrigin.position, rayOrigin.forward, out _hitInfo, 1000))
            {
                Debug.DrawRay(rayOrigin.position, rayOrigin.forward * _hitInfo.distance, Color.yellow);
                //Debug.Log("Ray hit an object");
                if (_hitInfo.transform.tag == Constants.Tags.PLAYER && _hitInfo.transform != transform)
                {
                    Debug.Log("Hit a player");

                    PhotonPlayerSetup _playerSetup = _hitInfo.transform.GetComponent<PhotonPlayerSetup>();
                    int _damage = playerSetup.currentWeapon.damage;

                    _playerSetup.Damage(_damage, transform.GetComponent<PhotonPlayerSetup>());
                    Debug.Log("Player Took : " + _damage + "; Current Player Health: " + _playerSetup.playerHealth);
                }
            }
            else
            {
                //Debug.DrawRay(rayOrigin.position, rayOrigin.TransformDirection(Vector3.forward) * 1000, Color.white);
                Debug.Log("Ray didn't hit an object");
            }
        }
For some info, I am using a Rigidbody View with velocity and angular velocity synced, I do find it kind of weird that I have to sync my camera with a Transform view as well.
I highly suspect that the client isn't synchronizing fast enough for the client to cast the ray onto other clients.

I have been trying to solve this problem for a long time and this is probably the only big problem in my way currently.
Any help would be greatly appreciated!

P.S. I don't really know how to write a question like this sorry if I am being unclear...