original_string: protected function callPolicyBefore($policy, $user, $ability, $arguments)
      {
          if (! method_exists($policy, 'before')) {
              return;
          }
  
          if ($this->canBeCalledWithUser($user, $policy, 'before')) {
              return $policy->before($user, $ability, ...$arguments);
          }
      }
code: protected function callPolicyBefore($policy, $user, $ability, $arguments)
      {
          if (! method_exists($policy, 'before')) {
              return;
          }
  
          if ($this->canBeCalledWithUser($user, $policy, 'before')) {
              return $policy->before($user, $ability, ...$arguments);
          }
      }
code_tokens: protected function callPolicyBefore ( $ policy , $ user , $ ability , $ arguments ) { if ( ! method_exists ( $ policy , 'before' ) ) { return ; } if ( $ this -> canBeCalledWithUser ( $ user , $ policy , 'before' ) ) { return $ policy -> before ( $ user , $ ability , ... $ arguments ) ; } }
docstring: Call the "before" method on the given policy, if applicable.
  
  @param  mixed  $policy
  @param  \Illuminate\Contracts\Auth\Authenticatable  $user
  @param  string  $ability
  @param  array  $arguments
  @return mixed
docstring_tokens: Call the before method on the given policy if applicable .