'datetime', 'status' => NewsStatus::class, 'views' => 'integer', ]; } #[Scope] protected function published(Builder $query): void { $query->where('status', NewsStatus::PUBLISHED); } #[Scope] protected function draft(Builder $query): void { $query->where('status', NewsStatus::DRAFT); } #[Scope] protected function archived(Builder $query): void { $query->where('status', NewsStatus::ARCHIVED); } public function getSlugOptions(): SlugOptions { return SlugOptions::create() ->generateSlugsFrom('title') ->saveSlugsTo('slug'); } public function author(): BelongsTo { return $this->belongsTo(User::class, 'author_id'); } public function categories(): BelongsToMany { return $this->belongsToMany(Category::class); } }