title: Understanding static method in laravel Model
body: <p>I was just going through a laravel tutrorial online and i saw the following modal coded as below:</p>
  
  <pre><code>&lt;?php
  
  namespace App;
  use Illuminate\Database\Eloquent\Model;
  
  class Notice extends Model {
  
      protected $fillable = [
          'provider_id',
          'infringing_title',    
          'infringing_link',    
          'original_link',    
          'original_description',    
          'template',    
          'content_removed'
      ];
  
  
      public static function open(array $attributes) {
          return new static($attributes); 
      } 
  
      public function useTemplate($template) {
          $this-&gt;template = $template;
      }
  
  }
  </code></pre>
  
  <p>What i am interested to know is what exactly is the use of the below method that is defined:</p>
  
  <pre><code>public static function open(array $attributes) {
              return new static($attributes); 
  } 
  </code></pre>
  
  <p>I realize its a static method , but this line <code>return new static($attributes);</code> particularly confuses me.</p>
  
  <p>I see the method being used in the following way:</p>
  
  <pre><code>    $notice = Notice::open($date);
  </code></pre>
  
  <p>But i still don't quite understand its usage . can somebody explain .</p>