'datetime', 'updated_at' => 'datetime', 'deleted_at' => 'datetime', 'added_at' => 'datetime', ]; public function episodes() { return $this->hasMany(Episode::class); } public function artists() { return $this->hasManyThrough(Artist::class, Episode::class); } public function latestEpisode() { return $this->hasOne(Episode::class) ->where('published', true) ->orderBy('episode_number', 'desc'); } public function latestArtwork() { // this follows the hasOneThrough from Episode → Artwork return $this->hasOneThrough( Artwork::class, // final model Episode::class, // intermediate 'podcast_id', // FK on episodes 'id', // PK on artworks 'id', // PK on podcasts 'artwork_id' // FK on episodes → artworks ) ->where('episodes.published', true) ->orderBy('episodes.episode_number', 'desc'); } }