tenant_id === session('tenant_id') && ($user->hasRole('admin') || $user->hasRole('manager') || $user->hasRole('hr') || $user->hasPermissionTo('view employees')); } /** * Determine whether the user can view the employee. */ public function view(User $user, Employee $employee): bool { return $user->tenant_id === $employee->tenant_id && ($user->hasRole('admin') || $user->hasRole('manager') || $user->hasRole('hr') || $user->hasPermissionTo('view employees')); } /** * Determine whether the user can create employees. */ public function create(User $user): bool { return $user->tenant_id === session('tenant_id') && ($user->hasRole('admin') || $user->hasRole('hr') || $user->hasPermissionTo('create employees')); } /** * Determine whether the user can update the employee. */ public function update(User $user, Employee $employee): bool { return $user->tenant_id === $employee->tenant_id && ($user->hasRole('admin') || $user->hasRole('hr') || $user->hasPermissionTo('edit employees')); } /** * Determine whether the user can delete the employee. */ public function delete(User $user, Employee $employee): bool { return $user->tenant_id === $employee->tenant_id && ($user->hasRole('admin') || $user->hasPermissionTo('delete employees')); } /** * Determine whether the user can view employee financials. */ public function viewFinancials(User $user, Employee $employee): bool { return $user->tenant_id === $employee->tenant_id && ($user->hasRole('admin') || $user->hasRole('hr') || $user->hasPermissionTo('view employee financials')); } }