where('client_id', $clientId) ->orderBy('created_at', 'desc') ->get(); } public function create(array $data): ClientProviderBlock { $existing = ClientProviderBlock::where('client_id', $data['client_id']) ->where('provider_id', $data['provider_id']) ->first(); if ($existing) { if ($existing->trashed()) { $existing->restore(); $existing->load(['provider.user']); return $existing; } else { throw new Exception(__('validation.client_provider_block.already_blocked')); } } $block = ClientProviderBlock::create($data); $block->load(['provider.user']); return $block; } public function delete(int $id): bool { $block = ClientProviderBlock::findOrFail($id); return $block->delete(); } public function getBlockedProviderIds(int $clientId): array { return ClientProviderBlock::where('client_id', $clientId) ->pluck('provider_id') ->toArray(); } }