original_string: protected function callPolicyMethod($policy, $method, $user, array $arguments)
      {
          // If this first argument is a string, that means they are passing a class name
          // to the policy. We will remove the first argument from this argument array
          // because this policy already knows what type of models it can authorize.
          if (isset($arguments[0]) && is_string($arguments[0])) {
              array_shift($arguments);
          }
  
          if (! is_callable([$policy, $method])) {
              return;
          }
  
          if ($this->canBeCalledWithUser($user, $policy, $method)) {
              return $policy->{$method}($user, ...$arguments);
          }
      }
code: protected function callPolicyMethod($policy, $method, $user, array $arguments)
      {
          // If this first argument is a string, that means they are passing a class name
          // to the policy. We will remove the first argument from this argument array
          // because this policy already knows what type of models it can authorize.
          if (isset($arguments[0]) && is_string($arguments[0])) {
              array_shift($arguments);
          }
  
          if (! is_callable([$policy, $method])) {
              return;
          }
  
          if ($this->canBeCalledWithUser($user, $policy, $method)) {
              return $policy->{$method}($user, ...$arguments);
          }
      }
code_tokens: protected function callPolicyMethod ( $ policy , $ method , $ user , array $ arguments ) { // If this first argument is a string, that means they are passing a class name // to the policy. We will remove the first argument from this argument array // because this policy already knows what type of models it can authorize. if ( isset ( $ arguments [ 0 ] ) && is_string ( $ arguments [ 0 ] ) ) { array_shift ( $ arguments ) ; } if ( ! is_callable ( [ $ policy , $ method ] ) ) { return ; } if ( $ this -> canBeCalledWithUser ( $ user , $ policy , $ method ) ) { return $ policy -> { $ method } ( $ user , ... $ arguments ) ; } }
docstring: Call the appropriate method on the given policy.
  
  @param  mixed  $policy
  @param  string  $method
  @param  \Illuminate\Contracts\Auth\Authenticatable|null  $user
  @param  array  $arguments
  @return mixed
docstring_tokens: Call the appropriate method on the given policy .