User Reports & Moderation
Clients and freelancers can report issues related to orders, projects, profiles, or chat conversations. Report and share buttons appear on gig, profile, and chat pages.
Purpose
Report abuse, scams, policy violations, or disputes so admins can review and act.
Database Schema
reports table:
| Column | Type | Notes |
|---|---|---|
id | bigint PK | — |
order_id | bigint, nullable | For order-related reports |
project_id | bigint, nullable | For project-related reports |
client_id | bigint | — |
freelancer_id | bigint | — |
reportable_user_id | bigint, nullable | The user being reported (profile/chat) |
reporter | string, nullable | freelancer or client |
context | string, nullable | order, project, profile, or chat |
title | string(190) | Report title |
description | longText | Rich text (summernote) |
status | tinyInteger | 0=in review, 1=closed, 2=rejected |
note | text, nullable | Admin note |
created_at / updated_at | timestamps | — |
Models
App\Models\Report:
- Fillable:
order_id,project_id,client_id,freelancer_id,reportable_user_id,reporter,context,title,description,status,note - Relationships:
client()→ User,freelancer()→ User,project()→ Project,reportableUser()→ User
Controllers
Frontend (Client): App\Http\Controllers\Frontend\Client\ReportController
report_submit()— Validates and creates report withreporter => 'client'all()— Lists the client's own reports
Frontend (Freelancer): App\Http\Controllers\Frontend\Freelancer\ReportController
report_submit()— Validates and creates report withreporter => 'freelancer'
Admin: App\Http\Controllers\Backend\UserReportController
all_reports()— Paginated list of all reportsreport_update()— Sets status and note, notifies reporter
Routes
| Method | URI | Name | Role |
|---|---|---|---|
| POST | /report/submit | client.report.submit | Client |
| GET | /reports/all | client.reports.all | Client |
| POST | /report/submit | freelancer.report.submit | Freelancer |
| GET | /admin/user-report/all | admin.user.report.all | Admin |
| POST | /admin/user-report/update | admin.user.report.update | Admin |
Admin Report Status
| Status | Meaning |
|---|---|
| 0 | In Review |
| 1 | Closed |
| 2 | Rejected |
Report Modal Component
<x-frontend.report-modal> — Reusable dialog with title/description fields, AJAX POST.
Props: uniqueId, reportType (order/project/profile/chat), targetId, targetUserId
Last updated: September 2026
Still stuck?
Our support team is ready to help you get set up.

