public function isDiscountApplicable(OrderProduct $item, mixed ...$arguments): Discount|bool|null 	{ 		[$code] = $arguments;  		$generalDiscountApplied = new GeneralDiscountApplied; 		$generalDiscountAddsUp = new GeneralDiscountAddsUp; 		$couponCodeValid = new CouponCodeValid; 		$generalDiscountApplied->setNext($generalDiscountAddsUp); 		$generalDiscountAddsUp->setNext($couponCodeValid);  		try { 			$generalDiscountApplied->handle($item, $code); 		} catch (GeneralDiscountAppliedException) { 			try { 				$couponCodeValid->handle($item, $code); 			} catch (Exception) { 				return false; 			} 		} catch (Exception) { 			return false; 		}  		return $couponCodeValid->getDiscount(); 	}