class_uses_recursive

The class_uses_recursive function returns all traits used by a class, including traits used by all of its parent classes:
<?php $traits = class_uses_recursive(App\Models\User::class);
<?php     function callTraitHook($name, $params = [])

    {

        foreach (class_uses_recursive($this->component) as $trait) {

            $method = $name.class_basename($trait);



            if (method_exists($this->component, $method)) {
<?php     function skip()

    {

        return ! in_array(WithPagination::class, class_uses_recursive($this->component));

    }



    function boot()
<?php         $this->component->paginators[$pageName] = $this->resolvePage($queryStringDetails['as'], $defaultPage);



        $shouldSkipUrlTracking = in_array(

            WithoutUrlPagination::class, class_uses_recursive($this->component)

        );



        if ($shouldSkipUrlTracking) return;
<?php         if (method_exists($component, 'queryString')) $componentQueryString = invade($component)->queryString();

        elseif (property_exists($component, 'queryString')) $componentQueryString = invade($component)->queryString;



        return $this->queryString = collect(class_uses_recursive($class = $component::class))

            ->map(function ($trait) use ($class, $component) {

                $member = 'queryString' . class_basename($trait);
<?php     public function shouldBypassExceptionForLivewire(\Throwable $e, $obLevel)

    {

        $uses = array_flip(class_uses_recursive($e));



        return (