'array', 'tool_notes' => 'array', 'featured' => 'boolean', 'prompt_of_week' => 'boolean', 'active' => 'boolean', 'published_at' => 'datetime', ]; public function scopeActive(Builder $query): Builder { return $query->where('active', true); } public function scopePublished(Builder $query): Builder { return $query->whereNotNull('published_at')->where('published_at', '<=', now()); } public function category(): BelongsTo { return $this->belongsTo(AcademyCategory::class, 'category_id'); } public function savedBy(): HasMany { return $this->hasMany(AcademySavedPrompt::class, 'prompt_template_id'); } public function packs(): BelongsToMany { return $this->belongsToMany(AcademyPromptPack::class, 'academy_prompt_pack_items', 'prompt_template_id', 'pack_id') ->withPivot('order_num') ->withTimestamps(); } }