Understanding static method in laravel Model
<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>