PHPackages                             vlados/laravel-legal-documents - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. vlados/laravel-legal-documents

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

vlados/laravel-legal-documents
==============================

Track legal document versions and user acceptances in Laravel applications

v1.2.1(3mo ago)136721MITPHPPHP ^8.2

Since Dec 14Pushed 3mo agoCompare

[ Source](https://github.com/vlados/laravel-legal-documents)[ Packagist](https://packagist.org/packages/vlados/laravel-legal-documents)[ RSS](/packages/vlados-laravel-legal-documents/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (5)Versions (5)Used By (0)

Laravel Legal Documents
=======================

[](#laravel-legal-documents)

[![Latest Version on Packagist](https://camo.githubusercontent.com/03da212567b0c0bed8ee93cf1032fc75d72eb6b3a9e283d2fdcd30aceb6ea3f1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f766c61646f732f6c61726176656c2d6c6567616c2d646f63756d656e74732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/vlados/laravel-legal-documents)[![License](https://camo.githubusercontent.com/c040a90c7851e10d0fbafccbaf9342c6a1a2d2c09b0c7e13e2bd2b0c411c4437/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f766c61646f732f6c61726176656c2d6c6567616c2d646f63756d656e74732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/vlados/laravel-legal-documents)

A Laravel package for managing legal documents (Privacy Policy, Terms of Service, etc.) with version tracking, user acceptance management, and optional Filament admin panel integration.

Features
--------

[](#features)

- **Document Types Management** - Create and manage different types of legal documents (Privacy Policy, Terms of Service, Cookie Policy, etc.)
- **Version Control** - Track document versions with full history and publish workflow
- **User Acceptance Tracking** - Record when users accept documents with audit metadata (IP address, user agent)
- **Re-acceptance on Updates** - Optionally require users to re-accept documents when they are updated
- **Role-Based Requirements** - Require specific documents for specific user roles (e.g., Terms of Service only for sellers)
- **Middleware Protection** - Block access to your application until required documents are accepted
- **Email Notifications** - Notify users when legal documents are updated
- **Filament Integration** - Optional admin panel with WordPress-style document editor
- **Formal Document Control** - Professional legal document layout with revision history
- **Frontend Routes** - Public pages to view legal documents with version history
- **Internationalization** - Full i18n support (English and Bulgarian included)

Screenshots
-----------

[](#screenshots)

### Document Types Management

[](#document-types-management)

[![Document Types](art/screenshot1.png)](art/screenshot1.png)*Manage document types with role-based requirements*

### Documents List

[](#documents-list)

[![Documents List](art/screenshot2.png)](art/screenshot2.png)*Track document versions, status, and user acceptances*

### Document Editor

[](#document-editor)

[![Document Editor](art/screenshot3.png)](art/screenshot3.png)*Rich text editor with publishing controls and version management*

Requirements
------------

[](#requirements)

- PHP 8.2+
- Laravel 11.x or 12.x
- Livewire 3.x

Installation
------------

[](#installation)

Install the package via Composer:

```
composer require vlados/laravel-legal-documents
```

Publish the configuration file:

```
php artisan vendor:publish --tag=legal-documents-config
```

Publish and run the migrations:

```
php artisan vendor:publish --tag=legal-documents-migrations
php artisan migrate
```

Configuration
-------------

[](#configuration)

After publishing, you can configure the package in `config/legal-documents.php`:

```
return [
    // Your User model
    'user_model' => App\Models\User::class,

    // Route where users accept pending documents
    'acceptance_route' => 'legal.accept',

    // Routes accessible even with pending documents
    'excluded_routes' => [
        'logout',
        'legal.*',
        'filament.*',
        'livewire.*',
    ],

    // Notification settings
    'notifications' => [
        'channels' => ['mail', 'database'],
        'queue' => true,
    ],

    // Filament admin panel integration
    'filament' => [
        'enabled' => true,
        'navigation_group' => 'Settings',
    ],

    // Frontend routes configuration
    'frontend' => [
        'enabled' => true,
        'prefix' => 'legal',
        'middleware' => ['web'],
        'layout' => 'layouts.app',
    ],

    // Role-based document requirements (optional)
    'roles' => [
        'enabled' => false, // Set to true to enable role-based requirements
        'available' => [],  // Leave empty to auto-detect from Spatie Permission
        'user_roles_method' => 'getRoleNames', // Method on User model to get roles
    ],
];
```

Setup
-----

[](#setup)

### 1. Add the Trait to Your User Model

[](#1-add-the-trait-to-your-user-model)

Add the `HasLegalAcceptances` trait to your User model:

```
