$constraint) { $installed = InstalledPackage::query()->where('package_name', $package)->where('status', 'installed')->first(); if (! $installed) { $missing[$package] = $constraint; continue; } if (! $this->constraints->matches($installed->version, (string) $constraint)) { $incompatible[$package] = ['required' => $constraint, 'installed' => $installed->version]; } } return ['satisfied' => $missing === [] && $incompatible === [], 'missing' => $missing, 'incompatible' => $incompatible]; } }