Index: app/Http/Controllers/Blog/BlogController.php
===================================================================
--- app/Http/Controllers/Blog/BlogController.php	(revision d25ba6629ddc39867a49008948daa1cedd404fc4)
+++ app/Http/Controllers/Blog/BlogController.php	(revision f4572650ba005d6619eca8e0d9d39b80ca03db66)
@@ -4,6 +4,8 @@
 
 use App\Http\Requests\Blog\CommentRequest;
+use App\Http\Requests\Blog\CompanyRequest;
 use App\Http\Requests\Blog\PostLikeRequest;
 use App\Http\Requests\Blog\PostUnlikeRequest;
+use App\Models\Company;
 use App\Models\Tag;
 use App\Models\Like;
@@ -15,4 +17,5 @@
 use App\Http\Controllers\Controller;
 use App\Notifications\NewCommentAdded;
+use Illuminate\Support\Facades\DB;
 
 class BlogController extends Controller
@@ -226,3 +229,35 @@
         ]);
     }
+
+    public function storeCompany(CompanyRequest $request)
+    {
+        DB::transaction(function () use ($request) {
+
+            $company = new Company();
+            $company->name = $request->name;
+            $company->website = $request->website;
+            $company->email = $request->email;
+
+            $company->save();
+
+            if ($company->wasRecentlyCreated) {
+                $this->disableOfferModal();
+            }
+        });
+
+        return redirect()->route("blog.index");
+    }
+
+    public function disableOffer()
+    {
+        $this->disableOfferModal();
+        return redirect()->route("blog.index");
+    }
+
+    private function disableOfferModal()
+    {
+        if (!session()->has("offer_disabled")) {
+            session()->push("offer_disabled", true);
+        }
+    }
 }
Index: app/Http/Controllers/Dashboard/CompaniesController.php
===================================================================
--- app/Http/Controllers/Dashboard/CompaniesController.php	(revision f4572650ba005d6619eca8e0d9d39b80ca03db66)
+++ app/Http/Controllers/Dashboard/CompaniesController.php	(revision f4572650ba005d6619eca8e0d9d39b80ca03db66)
@@ -0,0 +1,31 @@
+<?php
+
+namespace App\Http\Controllers\Dashboard;
+
+use App\Models\Company;
+use Illuminate\Http\Request;
+use App\Http\Controllers\Controller;
+
+class CompaniesController extends Controller
+{
+    public function index()
+    {
+        return view("dashboard.companies.index")->with([
+            "companies" => Company::all()
+        ]);
+    }
+
+    public function createAdmin($id)
+    {
+        $company = Company::findOrFail($id);
+
+        if($company->users->count()) {
+            return redirect()->route("dashboard.companies.index");
+        }
+
+        return view("dashboard.companies.create-admin")->with([
+            "company" => $company,
+            "countries" => country()->all()
+        ]);
+    }
+}
Index: app/Http/Controllers/Dashboard/IndexController.php
===================================================================
--- app/Http/Controllers/Dashboard/IndexController.php	(revision d25ba6629ddc39867a49008948daa1cedd404fc4)
+++ app/Http/Controllers/Dashboard/IndexController.php	(revision f4572650ba005d6619eca8e0d9d39b80ca03db66)
@@ -36,5 +36,5 @@
             "allPosts" => Post::count(),
             "currentUserPosts" => Post::where("user_id", auth()->user()->id)->count(),
-            "users" => User::count(),
+            "users" => !is_null(auth()->user()->company) ? auth()->user()->company->users->count() : User::count(),
             "total_comments" => Comment::count(),
             "comments" => auth()->user()->comments->count()
Index: app/Http/Controllers/Dashboard/UsersController.php
===================================================================
--- app/Http/Controllers/Dashboard/UsersController.php	(revision d25ba6629ddc39867a49008948daa1cedd404fc4)
+++ app/Http/Controllers/Dashboard/UsersController.php	(revision f4572650ba005d6619eca8e0d9d39b80ca03db66)
@@ -5,4 +5,5 @@
 use App\Helpers\Alert;
 use App\Http\Requests\Dashboard\NewUserRequest;
+use App\Models\Company;
 use App\Models\Role;
 use App\Models\User;
@@ -47,17 +48,27 @@
             $user->verify_token = $user->generateVerifyToken();
 
-            $user->role_id = $request->userRole;
+            if ($request->has("company_id") || !is_null(auth()->user()->company_id)) {
+                $user->company_id = $request->has("company_id") || auth()->user()->company_id;
+                $user->role_id = 1;
+            } else {
+                $user->role_id = $request->userRole;
+            }
 
             $user->save();
 
-            $user->userProfile()->create([
+            $userProfile = [
                 "profile_link" => $user->generateProfileLink($request->name, $request->surname),
                 "technoblog_email" => $user->generateTechnoblogEmail($request->name, $request->surname)
-            ]);
+            ];
+
+            if ($request->has("company_owner")) {
+                $userProfile["is_company_profile"] = true;
+            }
+
+            $user->userProfile()->create($userProfile);
 
             $user->notify(new WelcomeUser($user));
 
             Alert::flash("New user added successfully");
-
         });
 
Index: app/Http/Requests/Blog/CompanyRequest.php
===================================================================
--- app/Http/Requests/Blog/CompanyRequest.php	(revision f4572650ba005d6619eca8e0d9d39b80ca03db66)
+++ app/Http/Requests/Blog/CompanyRequest.php	(revision f4572650ba005d6619eca8e0d9d39b80ca03db66)
@@ -0,0 +1,32 @@
+<?php
+
+namespace App\Http\Requests\Blog;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class CompanyRequest extends FormRequest
+{
+    /**
+     * Determine if the user is authorized to make this request.
+     *
+     * @return bool
+     */
+    public function authorize()
+    {
+        return true;
+    }
+
+    /**
+     * Get the validation rules that apply to the request.
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        return [
+            "name" => "required|min:2",
+            "website" => "required|url",
+            "email" => "required|email:filter"
+        ];
+    }
+}
Index: app/Http/Requests/Dashboard/NewUserRequest.php
===================================================================
--- app/Http/Requests/Dashboard/NewUserRequest.php	(revision d25ba6629ddc39867a49008948daa1cedd404fc4)
+++ app/Http/Requests/Dashboard/NewUserRequest.php	(revision f4572650ba005d6619eca8e0d9d39b80ca03db66)
@@ -25,5 +25,5 @@
     public function rules()
     {
-        return [
+        $rules = [
             "name" => "required|alpha|min:2|max:255",
             "surname" => "required|alpha|min:2|max:255",
@@ -32,6 +32,11 @@
             "email" => "required|string|email|max:255|unique:users",
             "username" => "required|alpha_dash|min:8|unique:users,username",
-            "userRole" => "required|exists:roles,id"
         ];
+
+        if (!$this->has("company_id")) {
+            $rules["userRole"] = "required|exists:roles,id";
+        }
+
+        return $rules;
     }
 
Index: app/Models/Company.php
===================================================================
--- app/Models/Company.php	(revision f4572650ba005d6619eca8e0d9d39b80ca03db66)
+++ app/Models/Company.php	(revision f4572650ba005d6619eca8e0d9d39b80ca03db66)
@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class Company extends Model
+{
+    protected $table = "companies";
+
+    protected $fillable = [
+        "name", "website", "email"
+    ];
+
+    public function users()
+    {
+        return $this->hasMany(User::class);
+    }
+}
Index: app/Models/User.php
===================================================================
--- app/Models/User.php	(revision d25ba6629ddc39867a49008948daa1cedd404fc4)
+++ app/Models/User.php	(revision f4572650ba005d6619eca8e0d9d39b80ca03db66)
@@ -53,4 +53,9 @@
     }
 
+    public function company()
+    {
+        return $this->belongsTo(Company::class);
+    }
+
     public function userProfile()
     {
Index: app/Models/UserProfile.php
===================================================================
--- app/Models/UserProfile.php	(revision d25ba6629ddc39867a49008948daa1cedd404fc4)
+++ app/Models/UserProfile.php	(revision f4572650ba005d6619eca8e0d9d39b80ca03db66)
@@ -13,4 +13,5 @@
         "technoblog_email",
         "user_id",
+        "is_company_profile",
         "profile_link",
         "short_bio",
