Code Duplication    Length = 4-4 lines in 4 locations

src/Controllers/TicketControllable.php 4 locations

@@ 167-170 (lines=4) @@
164
     */
165
    public function show(Ticket $ticket)
166
    {
167
        if (! $ticket->user()->get()->contains(\request()->user()) &&
168
            ! request()->user()->can(config('laravel-tickets.permissions.all-ticket'))) {
169
            return abort(403);
170
        }
171
172
        $messages = $ticket->messages()->with([ 'user', 'uploads' ])->orderBy('created_at', 'desc');
173
@@ 198-201 (lines=4) @@
195
     */
196
    public function message(Request $request, Ticket $ticket)
197
    {
198
        if (! $ticket->user()->get()->contains(\request()->user()) &&
199
            ! request()->user()->can(config('laravel-tickets.permissions.all-ticket'))) {
200
            return abort(403);
201
        }
202
203
        if (! config('laravel-tickets.open-ticket-with-answer') && $ticket->state === 'CLOSED') {
204
            $message = trans('You cannot reply to a closed ticket');
@@ 251-254 (lines=4) @@
248
     */
249
    public function close(Ticket $ticket)
250
    {
251
        if (! $ticket->user()->get()->contains(\request()->user()) &&
252
            ! request()->user()->can(config('laravel-tickets.permissions.all-ticket'))) {
253
            return abort(403);
254
        }
255
        if ($ticket->state === 'CLOSED') {
256
            $message = trans('The ticket is already closed');
257
            return \request()->wantsJson() ?
@@ 286-289 (lines=4) @@
283
     */
284
    public function download(Ticket $ticket, TicketUpload $ticketUpload)
285
    {
286
        if (! $ticket->user()->get()->contains(\request()->user()) &&
287
            ! request()->user()->can(config('laravel-tickets.permissions.all-ticket'))) {
288
            return abort(403);
289
        }
290
291
        $storagePath = storage_path('app/' . $ticketUpload->path);
292
        if (config('laravel-tickets.pdf-force-preview') && pathinfo($ticketUpload->path, PATHINFO_EXTENSION) === 'pdf') {