original_string: public function scopes(array $scopes)
      {
          $builder = $this;
  
          foreach ($scopes as $scope => $parameters) {
              // If the scope key is an integer, then the scope was passed as the value and
              // the parameter list is empty, so we will format the scope name and these
              // parameters here. Then, we'll be ready to call the scope on the model.
              if (is_int($scope)) {
                  [$scope, $parameters] = [$parameters, []];
              }
  
              // Next we'll pass the scope callback to the callScope method which will take
              // care of grouping the "wheres" properly so the logical order doesn't get
              // messed up when adding scopes. Then we'll return back out the builder.
              $builder = $builder->callScope(
                  [$this->model, 'scope'.ucfirst($scope)],
                  (array) $parameters
              );
          }
  
          return $builder;
      }
code: public function scopes(array $scopes)
      {
          $builder = $this;
  
          foreach ($scopes as $scope => $parameters) {
              // If the scope key is an integer, then the scope was passed as the value and
              // the parameter list is empty, so we will format the scope name and these
              // parameters here. Then, we'll be ready to call the scope on the model.
              if (is_int($scope)) {
                  [$scope, $parameters] = [$parameters, []];
              }
  
              // Next we'll pass the scope callback to the callScope method which will take
              // care of grouping the "wheres" properly so the logical order doesn't get
              // messed up when adding scopes. Then we'll return back out the builder.
              $builder = $builder->callScope(
                  [$this->model, 'scope'.ucfirst($scope)],
                  (array) $parameters
              );
          }
  
          return $builder;
      }
code_tokens: public function scopes ( array $ scopes ) { $ builder = $ this ; foreach ( $ scopes as $ scope => $ parameters ) { // If the scope key is an integer, then the scope was passed as the value and // the parameter list is empty, so we will format the scope name and these // parameters here. Then, we'll be ready to call the scope on the model. if ( is_int ( $ scope ) ) { [ $ scope , $ parameters ] = [ $ parameters , [ ] ] ; } // Next we'll pass the scope callback to the callScope method which will take // care of grouping the "wheres" properly so the logical order doesn't get // messed up when adding scopes. Then we'll return back out the builder. $ builder = $ builder -> callScope ( [ $ this -> model , 'scope' . ucfirst ( $ scope ) ] , ( array ) $ parameters ) ; } return $ builder ; }
docstring: Call the given local model scopes.
  
  @param  array  $scopes
  @return static|mixed
docstring_tokens: Call the given local model scopes .