$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]; } }