Supported Versions: PHP 4, PHP 5, PHP 7, PHP 8
Checks if the class method exists
method_exists(object|string $object_or_classstring $method): bool
    protected function callPolicyBefore($policy$user$ability$arguments)

    {

        if (! 
method_exists($policy'before')) {

            return;

        }
        $driverMethod 'create'.ucfirst($config['driver']).'Driver';



        if (
method_exists($this$driverMethod)) {

            return 
$this->{$driverMethod}($name$config);

        }
        if (method_exists($guard'setCookieJar')) {

            
$guard->setCookieJar($this->app['cookie']);

        }
            $guard->setCookieJar($this->app['cookie']);

        }



        if (
method_exists($guard'setDispatcher')) {

            
$guard->setDispatcher($this->app['events']);

        }
            $guard->setDispatcher($this->app['events']);

        }



        if (
method_exists($guard'setRequest')) {

            
$guard->setRequest($this->app->refresh('request'$guard'setRequest'));

        }
                return;

            }



            if (
method_exists($guard $app['auth']->guard(), 'setDispatcher')) {

                
$guard->setDispatcher($dispatcher);

            }

        });
        $user $this->retrieveUser($request$channelName);



        
$broadcastIdentifier method_exists($user'getAuthIdentifierForBroadcasting')

                    ? 
$user->getAuthIdentifierForBroadcasting()

                    : 
$user->getAuthIdentifier();
            return;

        }



        if (
method_exists($this->pusher'authenticateUser')) {

            return 
$this->pusher->authenticateUser($request->socket_id$user);

        }
        if (str_starts_with($request->channel_name'private')) {

            return 
$this->decodePusherResponse(

                
$request,

                
method_exists($this->pusher'authorizeChannel')

                    ? 
$this->pusher->authorizeChannel($request->channel_name$request->socket_id)

                    : 
$this->pusher->socket_auth($request->channel_name$request->socket_id)

            );
        $user $this->retrieveUser($request$channelName);



        
$broadcastIdentifier method_exists($user'getAuthIdentifierForBroadcasting')

                        ? 
$user->getAuthIdentifierForBroadcasting()

                        : 
$user->getAuthIdentifier();
        return $this->decodePusherResponse(

            
$request,

            
method_exists($this->pusher'authorizePresenceChannel')

                ? 
$this->pusher->authorizePresenceChannel($request->channel_name$request->socket_id$broadcastIdentifier$result)

                : 
$this->pusher->presence_auth($request->channel_name$request->socket_id$broadcastIdentifier$result)

        );
        $user $this->retrieveUser($request$channelName);



        
$broadcastIdentifier method_exists($user'getAuthIdentifierForBroadcasting')

                        ? 
$user->getAuthIdentifierForBroadcasting()

                        : 
$user->getAuthIdentifier();
    public function handle(BroadcastingFactory $manager)

    {

        
$name method_exists($this->event'broadcastAs')

                ? 
$this->event->broadcastAs() : get_class($this->event);



        
$channels Arr::wrap($this->event->broadcastOn());
            return;

        }



        
$connections method_exists($this->event'broadcastConnections')

                            ? 
$this->event->broadcastConnections()

                            : [
null];
    protected function getPayloadFromEvent($event)

    {

        if (
method_exists($event'broadcastWith') &&

            ! 
is_null($payload $event->broadcastWith())) {

            return 
array_merge($payload, ['socket' => data_get($event'socket')]);

        }