/**
  * Find a discussion by ID, optionally making sure it is visible to a certain
  * user, or throw an exception.
  *
  * @param  integer  $id
  * @param  \Flarum\Core\Models\User  $user
  * @return \Flarum\Core\Models\Discussion
  *
  * @throws \Illuminate\Database\Eloquent\ModelNotFoundException
  */
 public function findOrFail($id, User $user = null)
 {
     $query = Discussion::where('id', $id);
     return $this->scopeVisibleForUser($query, $user)->firstOrFail();
 }