select('users.*, auth_groups.name as podcast_role') ->join('podcasts_users', 'podcasts_users.user_id = users.id') ->join( 'auth_groups', 'auth_groups.id = podcasts_users.group_id', ) ->where('podcasts_users.podcast_id', $podcastId) ->findAll(); cache()->save($cacheName, $found, DECADE); } return $found; } public function getPodcastContributor(int $userId, int $podcastId): ?User { return $this->select( 'users.*, podcasts_users.podcast_id as podcast_id, auth_groups.name as podcast_role', ) ->join('podcasts_users', 'podcasts_users.user_id = users.id') ->join('auth_groups', 'auth_groups.id = podcasts_users.group_id') ->where([ 'users.id' => $userId, 'podcast_id' => $podcastId, ]) ->first(); } }