Trying to get a button to switch colors with RGB LED and text with LCD

So I have a program that tells you to pick the right or left button. The right button (but2) will rapidly change between colors and display the text "rainbow seizure" on the LCD. I would like the other button to have every time you press it, it changes a color (the colors that I used for the rainbow) and displays that colors name on the LCD and every time you press the button it changes to the next solid color. Not sure how to code it so it will switch every time you press the button to a new color and then when you get to aqua it will go back to red.

Thanks for trying to help!

#include <LiquidCrystal.h>

const int but1 = 1;  
const int but2 = 2;
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);  
int buttonState1 = 0;
int buttonState2 = 0;

int redPin = 3;
int greenPin = 5;
int bluePin = 6;


void setup() { 

  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT); 

  setColor(0, 0, 0);
  lcd.begin(16, 2);
  pinMode(but1, INPUT);
  pinMode(but2, INPUT);
  lcd.print("Left for change");
  lcd.print("Right for fast");

void loop() {  
  buttonState1 = digitalRead(but1);
  buttonState2 = digitalRead(but2);

  while (buttonState2 == HIGH)
  lcd.print("Rainbow Seizure");
  setColor(255, 0, 0);  // red
  setColor(0, 255, 0);  // green
  setColor(0, 0, 255);  // blue
  setColor(255, 255, 0);  // yellow
  setColor(80, 0, 80);  // purple
  setColor(0, 255, 255);  // aqua

  // ***** Here is where I want to be able to press my but1 (buttonState1) to be able to be pressed multiple times and switch to each one of the
  // ***** colors above and have the name of the color displayed on the lcd

  void setColor(int red, int green, int blue)
    red = 255 - red;
    green = 255 - green;
    blue = 255 - blue;
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);  

Instead of doing everything all at once, you should just write a sketch that counts up by 1 for every button press.
If you can't do that, you have no hope of doing this.

As mentioned, you need an intermediate step. Make the button increase a variable. Then at one point your program will read what this variable is and decide what to do.
Don't judge whether your program works by its output on the LED, you want to make sure each major step is working by printing out to the serial monitor.