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 { // @phpstan-ignore-next-line 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(); } }