'boolean', 'is_stale' => 'boolean', 'last_verified_at' => 'datetime', 'published_at' => 'datetime', 'source_level' => SourceLevel::class, 'status' => EntityStatus::class, ]; } public function category(): BelongsTo { return $this->belongsTo(Category::class); } public function source(): BelongsTo { return $this->belongsTo(Source::class); } public function alternative(): BelongsTo { return $this->belongsTo(self::class, 'alternative_tool_id'); } public function tags(): BelongsToMany { return $this->belongsToMany(Tag::class, 'entity_tag_maps', 'entity_id', 'tag_id') ->wherePivot('entity_type', self::class) ->withTimestamps(); } }