Laravel Packages

Handle Money Transactions in Eloquent with Laravel Wallet

Published Updated
Handle Money Transactions in Eloquent with Laravel Wallet image

Laravel Wallet is designed for reliable and flexible transactions and handles the complex part of storing transactions in the database for precise calculations. It provides an intuitive API that is easy to use and straightforward to understand.

Once you have followed the setup instructions, you can set up the user model with the HasBalance trait:

namespace App\Models;
 
use Illuminate\Database\Eloquent\Model;
use O21\LaravelWallet\Contracts\Payable;
use O21\LaravelWallet\Models\Concerns\HasBalance;
 
class User extends Model implements Payable
{
use HasBalance;
}

Here are some possible commands you can use to work with a balance on the model. In the following examples, the $sender and $recipient implement the Payable interface via the HasBalance trait:

// Transfer money between sender and recipient
transfer(100, 'USD')->from($sender)->to($recipient)->commit();
 
// Deposit money into a recipient's account
deposit(100, 'USD')->to($recipient)->overcharge()->commit();
 
// Charge a user
charge(100, 'USD')->from($sender)->commit();

This package has resulted from the author using it privately on projects, honing it, and now releasing it as open-source. It includes safeguards for balance accuracy and a sophisticated rollback mechanism designed to revert modifications.

Learn More

To get started with this package, check out the GitHub page.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article