# Redeem Vouchers

To redeem a voucher, use the redeem method:

$voucher = $user->redeem('ABCD-EFGH');
// or
$voucher = Voucher::find(1);
$user->redeem($voucher);
// or
$user->redeem($voucher->code);

If the voucher is valid, the method will return the voucher model associated with this code.

After a voucher is successfully redeemed, this package will fire a MOIREI\Vouchers\Events\VoucherRedeemed event. The event contains the redeemer instance and the voucher instance.

To redeem a voucher with multiple items, provide an item to the redeem method.

use MOIREI\Vouchers\VoucherScheme;

[$product1, $product2] = Product::take(2)->get();

[$voucher] = Vouchers::create([$product1, $product2], 1, [
    'limit_scheme' => VoucherScheme::ITEM,
]);
// or
$voucher = Voucher::make()
          ->setItems([$product1, $product2])
          ->limitUsePerItem()
          ->save();

// redeem for a perticular product
$user->redeem($voucher->code, $product1);