use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Casts\AsEncryptedArrayObject;
use Illuminate\Database\Eloquent\Model;
class Credentials extends Model
{
// ...
public function scopeCanBeUsedByTeam(Builder $query, Team $team)
{
$query->where(function (Builder $credentialsQuery) use ($team) {
$credentialsQuery->whereNull('team_id')->orWhere('team_id', $team->id);
});
$query->where(function (Builder $credentialsQuery) use ($team) {
$credentialsQuery->whereHas('user.ownedTeams', fn (Builder $ownedTeams) => $ownedTeams->where($ownedTeams->qualifyColumn('id'), $team->id));
$credentialsQuery->orWhereHas('user.teams', fn (Builder $teams) => $teams->where($teams->qualifyColumn('id'), $team->id));
});
}
// ...
}