yajra/laravel-auditable

A simple Laravel user auditing package for Eloquent Model.
276,771 173
Install
composer require yajra/laravel-auditable
Latest Version:v13.0.0
PHP:^8.3
License:MIT
Last Updated:Mar 20, 2026
Links: GitHub  ·  Packagist
Maintainer: yajra

Laravel Auditable

Latest Version on Packagist Software License

Continuous Integration Static Analysis Total Downloads

Laravel Auditable is a simple Laravel auditing package for your Eloquent Model. This package automatically inserts/updates an audit log on your table on who created and last updated the record.

Laravel Version Compatibility

Laravel Package
5.x-10.x 4.x
11.x 11.x
12.x 12.x
13.x 13.x

Install via Composer

composer require yajra/laravel-auditable:^13

Publish config file

If you want to modify the withDefault option on auditable columns, you may publish the config file.

php artisan vendor:publish --tag=auditable

Usage

Update your model's migration and add created_by and updated_by field using the auditable() blueprint macro.

Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name', 100);
    $table->auditable();
    $table->timestamps();
});

Then use AuditableTrait on your model.

namespace App;

use Yajra\Auditable\AuditableTrait;

class User extends Model
{
    use AuditableTrait;
}

Soft Deletes

If you wish to use Laravel's soft deletes, use the auditableWithDeletes() method on your migration instead:

Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name', 100);
    $table->auditableWithDeletes();
    $table->timestamps();
    $table->softDeletes()
});

Afterwards, you need to use AuditableWithDeletesTrait on your model.

namespace App;

use Yajra\Auditable\AuditableWithDeletesTrait;

class User extends Model
{
    use AuditableWithDeletesTrait, SoftDeletes;
}

Dropping columns

You can drop auditable columns using dropAuditable() method, or dropAuditableWithDeletes() if using soft deletes.

Schema::create('users', function (Blueprint $table) {
    $table->dropAuditable();
});

And you're done! The package will now automatically add a basic audit log for your model to track who inserted and last updated your records.

Change log

Please see CHANGELOG for more information what has changed recently.

Testing

composer test

Contributing

Please see CONTRIBUTING and CONDUCT for details.

Security

If you discover any security related issues, please email aqangeles@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

Related Packages

yajra/laravel-datatables-oracle

jQuery DataTables API for Laravel

36,801,493 4,871
yajra/laravel-datatables-html

Laravel DataTables HTML builder plugin

10,627,446 284
yajra/laravel-oci8

Oracle DB driver for Laravel via OCI8

3,283,368 872
yajra/laravel-acl

Laravel ACL is a simple role, permission ACL for Laravel Framework.

122,030 113
yajra/laravel-disqus

A simple Disqus platform integration with Laravel.

57,709 84