'boolean', ]; protected static function newFactory(): ShareFactory { return ShareFactory::new(); } public function getLinkAttribute(): string { return url("/share/{$this->token}"); } public function user(): HasOne { return $this->hasOne(User::class, 'id', 'user_id'); } /** * Model events */ protected static function boot() { parent::boot(); static::creating(function ($shared) { $shared->id = (string) Str::uuid(); $shared->token = Str::random(); }); } }