public function discover()
 {
     if (Auth::check()) {
         $requests = Auth::user()->friendRequest();
         $posts = Posts::notReply()->where(function ($query) {
             return $query->where('isPublic', true)->lists('id');
         })->orderBy('created_at', 'desc')->paginate(10);
         return view('discover')->with('posts', $posts)->with('requests', $requests);
     }
 }
 public function postReply(Request $request, $postsId)
 {
     $this->validate($request, ["reply-{$postsId}" => 'required|max:255'], ['required' => 'the reply is required']);
     $posts = Posts::notReply()->find($postsId);
     if (!$posts) {
         return redirect()->route('home');
     }
     if (!Auth::user()->isFriendWith($posts->user) && Auth::user()->id !== $posts->user->id) {
         return redirect()->route('home');
     }
     $reply = Posts::create(['caption' => $request->input("reply-{$postsId}")])->user()->associate(Auth::user());
     $posts->replies()->save($reply);
     return redirect()->back();
 }
 public function getProfile($id)
 {
     $user = User::where('id', $id)->first();
     $requests = Auth::user()->friendRequest();
     if (!$user) {
         abort(404);
     }
     $posts = Posts::notReply()->where('user_id', $id)->orderBy('created_at', 'desc')->paginate(10);
     $posts_pub = Posts::notReply()->where('user_id', $id)->where('isPublic', true)->orderBy('created_at', 'desc')->paginate(10);
     /*
              * $posts_pub= Posts::notReply()->where('user_id',$id)->orWhere(function($query){
                 $query->where('isPublic',true);})->orderBy('created_at', 'desc')
                 ->paginate(10);
              * */
     //dd($posts);
     return view('profile.index')->with('user', $user)->with('posts', $posts)->with('requests', $requests)->with('posts_pub', $posts_pub)->with('authUserIsFriend', Auth::user()->isFriendWith($user));
 }