generateSlugsFrom('title') ->saveSlugsTo('slug') ->usingSeparator('-')->allowDuplicateSlugs(); } public function user(): BelongsTo { return $this->belongsTo(User::class); } public function reactions(): HasMany { return $this->hasMany(WebsiteArticleReaction::class, 'article_id') ->whereActive(true); } public function comments(): HasMany { return $this->hasMany(WebsiteArticleComment::class, 'article_id'); } public function userHasReachedArticleCommentLimit(): bool { return $this->comments()->where('user_id', '=', Auth::id())->count() >= (int) setting('max_comment_per_article'); } #[\Override] protected static function boot() { parent::boot(); static::saving(function ($model): void { if (empty($model->image)) { $model->image = ''; } }); } public function tags() { return $this->morphToMany(Tag::class, 'taggable'); } }