canCreateCompany = $canCreateCompany; $this->createsCompany = $createsCompany; $this->generatesUniqueAccountNumber = $generatesUniqueAccountNumber; } /** * @param Request $request * @return \Illuminate\Database\Eloquent\Model|null * @throws \App\Classes\Exceptions\AccessForbiddenException * @throws \App\Classes\Exceptions\MalformedRequestException * @throws \App\Classes\Exceptions\RequestValidationException */ public function execute(Request $request){ $object = new CompanyObject($this->generatesUniqueAccountNumber->execute(), $request->input('name'), $request->input('type')); $this->canCreateCompany->passes($object); return $this->createsCompany->execute($object); } }