PHPackages                             junaidnasir/larainvite - 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. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. junaidnasir/larainvite

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

junaidnasir/larainvite
======================

Laravel Invitation package, existing users can invite others by email

v12.0.0(1y ago)143126.7k—6.3%35[1 issues](https://github.com/junaidnasir/larainvite/issues)MITPHPPHP &gt;=5.5.9CI failing

Since Mar 29Pushed 1mo ago4 watchersCompare

[ Source](https://github.com/junaidnasir/larainvite)[ Packagist](https://packagist.org/packages/junaidnasir/larainvite)[ Docs](https://github.com/junaidnasir/larainvite)[ RSS](/packages/junaidnasir-larainvite/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (10)Dependencies (4)Versions (23)Used By (0)

Larainvite
==========

[](#larainvite)

Larainvite is a Laravel package that allows existing users to invite others via email.

It generates a one-time invitation code that can be sent as an invite link, and keeps track of the invitation status.

[![Latest Stable Version](https://camo.githubusercontent.com/1bd9bbd98bc563f1fd22ad8805ce9635bb78259161c55752e2b7712d644d80b5/68747470733a2f2f706f7365722e707567782e6f72672f6a756e6169646e617369722f6c617261696e766974652f762f737461626c65)](https://packagist.org/packages/junaidnasir/larainvite)[![License](https://camo.githubusercontent.com/651c15b07abd1832c4790a7d595cf3230d9bf2697eb9e35d2c3596c14a30e365/68747470733a2f2f706f7365722e707567782e6f72672f6a756e6169646e617369722f6c617261696e766974652f6c6963656e7365)](https://packagist.org/packages/junaidnasir/larainvite)[![Total Downloads](https://camo.githubusercontent.com/7ac185e1b186977cd38cff817d1cc22bfa09c0894747e8d4c10d7dcdfab58cce/68747470733a2f2f706f7365722e707567782e6f72672f6a756e6169646e617369722f6c617261696e766974652f646f776e6c6f616473)](https://packagist.org/packages/junaidnasir/larainvite)[![Monthly Downloads](https://camo.githubusercontent.com/a3d20681938d0576098e7c14be4f0cb753a9d6f6e5eea19a86433c2ef278269f/68747470733a2f2f706f7365722e707567782e6f72672f6a756e6169646e617369722f6c617261696e766974652f642f6d6f6e74686c79)](https://packagist.org/packages/junaidnasir/larainvite)

- v12 supports Laravel 12
- v7 supports Laravel 11
- v6 supports Laravel 10
- v5 supports Laravel 9
- v4 supports Laravel 8
- v3 supports Laravel 5.8+, Laravel 6.0 and Laravel 7.0
- v2 supports Laravel 5.0 to 5.8
- v1 supports Laravel 4.\*

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

[](#installation)

Begin by installing the package through Composer. Run the following command in your terminal:

```
composer require junaidnasir/larainvite
```

add the package service provider in the providers array in `config/app.php`:

```
Junaidnasir\Larainvite\LaraInviteServiceProvider::class
```

you may add the facade access in the aliases array:

```
'Invite'  => Junaidnasir\Larainvite\Facades\Invite::class
```

publish the migration and config file:

```
php artisan vendor:publish --provider="Junaidnasir\Larainvite\LaraInviteServiceProvider"
```

migrate to create `user_invitation` table

```
php artisan migrate
```

edit your `User` model to include `larainviteTrait`

```
use Junaidnasir\Larainvite\InviteTrait;
class user ... {
    use InviteTrait;
}
```

Usage
-----

[](#usage)

You can use ***facade accessor*** to retrieve the package controller. Examples:

```
$user = Auth::user();
//Invite::invite(EMAIL, REFERRAL_ID);
$refCode = Invite::invite('email@address.com', $user->id);
//or
//Invite::invite(EMAIL, REFERRAL_ID, EXPIRATION);
$refCode = Invite::invite('email@address.com', $user->id, '2016-12-31 10:00:00');
//or
//Invite::invite(EMAIL, REFERRAL_ID, EXPIRATION, BEFORE_SAVE_CALLBACK);
$refCode = Invite::invite($to, Auth::user()->id, Carbon::now()->addYear(1),
                      function(/* InvitationModel, see Configurations */ $invitation) use ($someValue) {
      $invitation->someParam = $someValue;
});
```

now create routes with `refCode`, when user access that route you can use following methods

```
// Get route
$code = Request::input('code');
if( Invite::isValid($code))
{
    $invitation = Invite::get($code); //retrieve invitation modal
    $invited_email = $invitation->email;
    $referral_user = $invitation->user;

    // show signup form
} else {
    $status = Invite::status($code);
    // show error or show simple signup form
}
```

```
// Post route
$code = Request::input('code');
$email = Request::input('signup_email');
if( Invite::isAllowed($code,$email) ){
    // Register this user
    Invite::consume($code);
} else {
    // either refCode is inavalid, or provided email was not invited against this refCode
}
```

with help of new trait you have access to invitations sent by user

```
$user= User::find(1);
$invitations = $user->invitations;
$count = $user->invitations()->count();
```

Events
------

[](#events)

***larainvite*** fires several [events](https://laravel.com/docs/master/events)

- Junaidnasir\\Larainvite\\Events\\Invited
- Junaidnasir\\Larainvite\\Events\\InvitationConsumed
- Junaidnasir\\Larainvite\\Events\\InvitedCanceled
- Junaidnasir\\Larainvite\\Events\\Expired

all of these events incloses `invitation modal` so you can listen to these events. include listener in `EventServiceProvider.php`

```
use Junaidnasir\Larainvite\Events\Invited;
use App\Listeners\SendUserInvitationNotification;

protected $listen = [
    Invited::class => [
        SendUserInvitationNotification::class,
    ],
];
```

`userInvite.php`

```
public function handle($invitation)
{
    \Mail::queue('invitations.emailBody', $invitation, function ($m) use ($invitation) {
            $m->from('From Address', 'Your App Name');
            $m->to($invitation->email);
            $m->subject("You have been invited by ". $invitation->user->name);
        });
}
```

Configurations
--------------

[](#configurations)

in `config/larainvite.php` you can set default expiration time in hours from current time.

```
'expires' => 48
```

you can also change user model to be used, in `larainvite.php`

```
'UserModel' => 'App\User'
```

you can also change invitation model to be used, in `larainvite.php`

```
'InvitationModel' => 'App\Invitation'
```

###  Health Score

56

—

FairBetter than 97% of packages

Maintenance68

Regular maintenance activity

Popularity50

Moderate usage in the ecosystem

Community23

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 65.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~155 days

Recently: every ~409 days

Total

22

Last Release

479d ago

Major Versions

v3.1.0 → v4.0.02020-09-16

v4.0.0 → v5.0.02022-05-17

v5.0.0 → v6.0.02023-04-08

v6.0.0 → v7.0.02024-04-18

v7.0.0 → v12.0.02025-03-12

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/10703810?v=4)[Junaid Nasir](/maintainers/junaidnasir)[@junaidnasir](https://github.com/junaidnasir)

---

Top Contributors

[![junaidnasir](https://avatars.githubusercontent.com/u/10703810?v=4)](https://github.com/junaidnasir "junaidnasir (42 commits)")[![DariusIII](https://avatars.githubusercontent.com/u/3399658?v=4)](https://github.com/DariusIII "DariusIII (5 commits)")[![jimhill](https://avatars.githubusercontent.com/u/6712853?v=4)](https://github.com/jimhill "jimhill (4 commits)")[![laravel-shift](https://avatars.githubusercontent.com/u/15991828?v=4)](https://github.com/laravel-shift "laravel-shift (4 commits)")[![bmichotte](https://avatars.githubusercontent.com/u/235510?v=4)](https://github.com/bmichotte "bmichotte (3 commits)")[![FredericTribu](https://avatars.githubusercontent.com/u/114988140?v=4)](https://github.com/FredericTribu "FredericTribu (1 commits)")[![EazyServer](https://avatars.githubusercontent.com/u/19202935?v=4)](https://github.com/EazyServer "EazyServer (1 commits)")[![chellem](https://avatars.githubusercontent.com/u/570856?v=4)](https://github.com/chellem "chellem (1 commits)")[![mgjgid](https://avatars.githubusercontent.com/u/36155814?v=4)](https://github.com/mgjgid "mgjgid (1 commits)")[![uniconstructor](https://avatars.githubusercontent.com/u/1384545?v=4)](https://github.com/uniconstructor "uniconstructor (1 commits)")[![valeryan](https://avatars.githubusercontent.com/u/1508761?v=4)](https://github.com/valeryan "valeryan (1 commits)")

---

Tags

invitationlaravelsignuplaravelInviteinvitations

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/junaidnasir-larainvite/health.svg)

```
[![Health](https://phpackages.com/badges/junaidnasir-larainvite/health.svg)](https://phpackages.com/packages/junaidnasir-larainvite)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)[mongodb/laravel-mongodb

A MongoDB based Eloquent model and Query builder for Laravel

7.1k8.4M96](/packages/mongodb-laravel-mongodb)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k15.1M132](/packages/laravel-pulse)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9762.4M131](/packages/roots-acorn)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45444.2k1](/packages/pressbooks-pressbooks)[api-platform/laravel

API Platform support for Laravel

58171.6k14](/packages/api-platform-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
